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 (
|
const (
|
||||||
// NoLease is a special LeaseID representing the absence of a lease.
|
// NoLease is a special LeaseID representing the absence of a lease.
|
||||||
NoLease = LeaseID(0)
|
NoLease = LeaseID(0)
|
||||||
|
|
||||||
|
// maximum number of leases to revoke per iteration
|
||||||
|
// TODO: make this configurable?
|
||||||
|
leaseRevokeRate = 1000
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -422,6 +426,10 @@ func (le *lessor) runLoop() {
|
|||||||
le.mu.Unlock()
|
le.mu.Unlock()
|
||||||
|
|
||||||
if len(ls) != 0 {
|
if len(ls) != 0 {
|
||||||
|
// rate limit
|
||||||
|
if len(ls) > leaseRevokeRate/2 {
|
||||||
|
ls = ls[:leaseRevokeRate/2]
|
||||||
|
}
|
||||||
select {
|
select {
|
||||||
case <-le.stopC:
|
case <-le.stopC:
|
||||||
return
|
return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user