mirror of
				https://github.com/etcd-io/etcd.git
				synced 2024-09-27 06:25:44 +00:00 
			
		
		
		
	 4fef7fcb90
			
		
	
	
		4fef7fcb90
		
	
	
	
	
		
			
			- Addressing: https://github.com/etcd-io/etcd/issues/13332 - Backporting: https://github.com/etcd-io/etcd/pull/13334 Signed-off-by: vivekpatani <9080894+vivekpatani@users.noreply.github.com>
		
			
				
	
	
		
			32 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2018 The etcd Authors
 | |
| //
 | |
| // Licensed under the Apache License, Version 2.0 (the "License");
 | |
| // you may not use this file except in compliance with the License.
 | |
| // You may obtain a copy of the License at
 | |
| //
 | |
| //     http://www.apache.org/licenses/LICENSE-2.0
 | |
| //
 | |
| // Unless required by applicable law or agreed to in writing, software
 | |
| // distributed under the License is distributed on an "AS IS" BASIS,
 | |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| // See the License for the specific language governing permissions and
 | |
| // limitations under the License.
 | |
| 
 | |
| package clientv3
 | |
| 
 | |
| import (
 | |
| 	"math/rand"
 | |
| 	"time"
 | |
| )
 | |
| 
 | |
| // jitterUp adds random jitter to the duration.
 | |
| //
 | |
| // This adds or subtracts time from the duration within a given jitter fraction.
 | |
| // For example for 10s and jitter 0.1, it will return a time within [9s, 11s])
 | |
| //
 | |
| // Reference: https://godoc.org/github.com/grpc-ecosystem/go-grpc-middleware/util/backoffutils
 | |
| func jitterUp(duration time.Duration, jitter float64) time.Duration {
 | |
| 	multiplier := jitter * (rand.Float64()*2 - 1)
 | |
| 	return time.Duration(float64(duration) * (1 + multiplier))
 | |
| }
 |