clientv3/client.go
func (c *Client) roundRobinQuorumBackoff(waitBetween time.Duration, jitterFraction float64) backoffFunc {
	return func(attempt uint) time.Duration {
		// after each round robin across quorum, backoff for our wait between duration
		n := uint(len(c.Endpoints()))
		quorum := (n/2 + 1)
		if attempt%quorum == 0 {
			c.lg.Debug("backoff", zap.Uint("attempt", attempt), zap.Uint("quorum", quorum), zap.Duration("waitBetween", waitBetween), zap.Float64("jitterFraction", jitterFraction))
			return jitterUp(waitBetween, jitterFraction)
		}
		c.lg.Debug("backoff skipped", zap.Uint("attempt", attempt), zap.Uint("quorum", quorum))
		return 0
	}
}
func (c *Client) roundRobinQuorumBackoff(waitBetween time.Duration, jitterFraction float64) backoffFunc {
	return func(attempt uint) time.Duration {
		// after each round robin across quorum, backoff for our wait between duration
		n := uint(len(c.Endpoints()))
		quorum := (n/2 + 1)
		if attempt%quorum == 0 {
			c.lg.Debug("backoff", zap.Uint("attempt", attempt), zap.Uint("quorum", quorum), zap.Duration("waitBetween", waitBetween), zap.Float64("jitterFraction", jitterFraction))
			return jitterUp(waitBetween, jitterFraction)
		}
		c.lg.Debug("backoff skipped", zap.Uint("attempt", attempt), zap.Uint("quorum", quorum))
		return 0
	}
}
func ( c * Client ) roundRobinQuorumBackoff ( waitBetween time . Duration , jitterFraction float64 ) backoffFunc { return func ( attempt uint ) time . Duration { // after each round robin across quorum, backoff for our wait between duration n := uint ( len ( c . Endpoints ( ) ) ) quorum := ( n / 2 + 1 ) if attempt % quorum == 0 { c . lg . Debug ( " " , zap . Uint ( " " , attempt ) , zap . Uint ( " " , quorum ) , zap . Duration ( " " , waitBetween ) , zap . Float64 ( " " , jitterFraction ) ) return jitterUp ( waitBetween , jitterFraction ) } c . lg . Debug ( " " , zap . Uint ( " " , attempt ) , zap . Uint ( " " , quorum ) ) return 0 } }
// roundRobinQuorumBackoff retries against quorum between each backoff.
// This is intended for use with a round robin load balancer.
roundRobinQuorumBackoff retries against quorum between each backoff . This is intended for use with a round robin load balancer .