mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
lease: rate limit revoke runLoop
Fix https://github.com/coreos/etcd/issues/8097. Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
This commit is contained in:
parent
91ccc93042
commit
c14aad0ba6
@ -31,6 +31,10 @@ import (
|
||||
const (
|
||||
// NoLease is a special LeaseID representing the absence of a lease.
|
||||
NoLease = LeaseID(0)
|
||||
|
||||
// maximum number of leases to revoke per iteration
|
||||
// TODO: make this configurable?
|
||||
leaseRevokeRate = 1000
|
||||
)
|
||||
|
||||
var (
|
||||
@ -422,6 +426,10 @@ func (le *lessor) runLoop() {
|
||||
le.mu.Unlock()
|
||||
|
||||
if len(ls) != 0 {
|
||||
// rate limit
|
||||
if len(ls) > leaseRevokeRate/2 {
|
||||
ls = ls[:leaseRevokeRate/2]
|
||||
}
|
||||
select {
|
||||
case <-le.stopC:
|
||||
return
|
||||
|
Loading…
x
Reference in New Issue
Block a user