diff --git a/client/clients/tso/dispatcher.go b/client/clients/tso/dispatcher.go index 1cc2b2aa940..6bdbbf653c5 100644 --- a/client/clients/tso/dispatcher.go +++ b/client/clients/tso/dispatcher.go @@ -175,7 +175,7 @@ func (td *tsoDispatcher) handleDispatcher(wg *sync.WaitGroup) { <-batchingTimer.C defer batchingTimer.Stop() - bo := retry.InitialBackoffer(sd.UpdateMemberBackOffBaseTime, sd.UpdateMemberTimeout, sd.UpdateMemberBackOffBaseTime) + bo := retry.InitialBackoffer(sd.UpdateMemberBackOffBaseTime, sd.UpdateMemberMaxBackoffTime, sd.UpdateMemberTimeout) tsoBatchLoop: for { select { diff --git a/client/servicediscovery/service_discovery.go b/client/servicediscovery/service_discovery.go index cf1b3372591..3657a5229c2 100644 --- a/client/servicediscovery/service_discovery.go +++ b/client/servicediscovery/service_discovery.go @@ -47,11 +47,14 @@ import ( const ( // MemberUpdateInterval is the interval to update the member list. MemberUpdateInterval = time.Minute + // UpdateMemberMaxBackoffTime is the max time to back off when updating the member list. + UpdateMemberMaxBackoffTime = 100 * time.Millisecond + // UpdateMemberBackOffBaseTime is the base time to back off when updating the member list. + // Here we use 20ms is because getting timestamp will print a warning log if the time exceeds 30ms. + UpdateMemberBackOffBaseTime = 20 * time.Millisecond // UpdateMemberTimeout is the timeout to update the member list. // Use a shorter timeout to recover faster from network isolation. UpdateMemberTimeout = time.Second - // UpdateMemberBackOffBaseTime is the base time to back off when updating the member list. - UpdateMemberBackOffBaseTime = 100 * time.Millisecond serviceModeUpdateInterval = 3 * time.Second ) @@ -533,7 +536,7 @@ func (c *serviceDiscovery) updateMemberLoop() { ticker := time.NewTicker(MemberUpdateInterval) defer ticker.Stop() - bo := retry.InitialBackoffer(UpdateMemberBackOffBaseTime, UpdateMemberTimeout, UpdateMemberBackOffBaseTime) + bo := retry.InitialBackoffer(UpdateMemberBackOffBaseTime, UpdateMemberMaxBackoffTime, UpdateMemberTimeout) for { select { case <-ctx.Done():