Merge pull request #2417 from cfromknecht/min-backoff

server: configurable min backoff
This commit is contained in:
Johan T. Halseth authored and GitHub committed 2019-01-08 15:07:50 +01:00
commit 3ab01898fb
2 files changed
+17 -11

No files matched your search

+7 -11
View File
@@ -49,10 +49,6 @@ const (
// connected to.
defaultMinPeers = 3
// defaultBackoff is the starting point for exponential backoff for
// reconnecting to persistent peers.
defaultBackoff = time.Second
// defaultStableConnDuration is a floor under which all reconnection
// attempts will apply exponential randomized backoff. Connections
// durations exceeding this value will be eligible to have their
@@ -1752,7 +1748,7 @@ func (s *server) establishPersistentConnections() error {
// persistent connection with.
s.persistentPeers[pubStr] = struct{}{}
if _, ok := s.persistentPeersBackoff[pubStr]; !ok {
s.persistentPeersBackoff[pubStr] = defaultBackoff
s.persistentPeersBackoff[pubStr] = cfg.MinBackoff
}
for _, address := range nodeAddr.addresses {
@@ -2023,7 +2019,7 @@ func (s *server) nextPeerBackoff(pubStr string,
backoff, ok := s.persistentPeersBackoff[pubStr]
if !ok {
// If an existing backoff was unknown, use the default.
return defaultBackoff
return cfg.MinBackoff
}
// If the peer failed to start properly, we'll just use the previous
@@ -2045,17 +2041,17 @@ func (s *server) nextPeerBackoff(pubStr string,
// reduce the timeout duration by the length of the connection after
// applying randomized exponential backoff. We'll only apply this in the
// case that:
// reb(curBackoff) - connDuration > defaultBackoff
// reb(curBackoff) - connDuration > cfg.MinBackoff
relaxedBackoff := computeNextBackoff(backoff) - connDuration
if relaxedBackoff > defaultBackoff {
if relaxedBackoff > cfg.MinBackoff {
return relaxedBackoff
}
// Lastly, if reb(currBackoff) - connDuration <= defaultBackoff, meaning
// Lastly, if reb(currBackoff) - connDuration <= cfg.MinBackoff, meaning
// the stable connection lasted much longer than our previous backoff.
// To reward such good behavior, we'll reconnect after the default
// timeout.
return defaultBackoff
return cfg.MinBackoff
}
// shouldDropConnection determines if our local connection to a remote peer
@@ -2711,7 +2707,7 @@ func (s *server) ConnectToPeer(addr *lnwire.NetAddress, perm bool) error {
s.persistentPeers[targetPub] = struct{}{}
if _, ok := s.persistentPeersBackoff[targetPub]; !ok {
s.persistentPeersBackoff[targetPub] = defaultBackoff
s.persistentPeersBackoff[targetPub] = cfg.MinBackoff
}
s.persistentConnReqs[targetPub] = append(
s.persistentConnReqs[targetPub], connReq)