*: rename lease.DeleteableRange to lease.RangeDeleter
parent
f5753f2f51
commit
f01c8188f8
|
@ -45,21 +45,21 @@ var (
|
|||
|
||||
type LeaseID int64
|
||||
|
||||
// DeleteableRange defines an interface with DeleteRange method.
|
||||
// RangeDeleter defines an interface with DeleteRange method.
|
||||
// We define this interface only for lessor to limit the number
|
||||
// of methods of storage.KV to what lessor actually needs.
|
||||
//
|
||||
// Having a minimum interface makes testing easy.
|
||||
type DeleteableRange interface {
|
||||
type RangeDeleter interface {
|
||||
DeleteRange(key, end []byte) (int64, int64)
|
||||
}
|
||||
|
||||
// A Lessor is the owner of leases. It can grant, revoke, renew and modify leases for lessee.
|
||||
type Lessor interface {
|
||||
// SetDeleteableRange sets the DeleteableRange to the Lessor.
|
||||
// SetDeleteableRange sets the RangeDeleter to the Lessor.
|
||||
// Lessor deletes the items in the revoked or expired lease from the
|
||||
// the set DeleteableRange.
|
||||
SetDeleteableRange(dr DeleteableRange)
|
||||
// the set RangeDeleter.
|
||||
SetRangeDeleter(dr RangeDeleter)
|
||||
|
||||
// Grant grants a lease that expires at least after TTL seconds.
|
||||
Grant(ttl int64) *Lease
|
||||
|
@ -115,10 +115,9 @@ type lessor struct {
|
|||
// FindExpired and Renew should be the most frequent operations.
|
||||
leaseMap map[LeaseID]*Lease
|
||||
|
||||
// A DeleteableRange the lessor operates on.
|
||||
// When a lease expires, the lessor will delete the
|
||||
// leased range (or key) from the DeleteableRange.
|
||||
dr DeleteableRange
|
||||
// leased range (or key) by the RangeDeleter.
|
||||
rd RangeDeleter
|
||||
|
||||
// backend to persist leases. We only persist lease ID and expiry for now.
|
||||
// The leased items can be recovered by iterating all the keys in kv.
|
||||
|
@ -154,11 +153,11 @@ func newLessor(lessorID uint8, b backend.Backend) *lessor {
|
|||
return l
|
||||
}
|
||||
|
||||
func (le *lessor) SetDeleteableRange(dr DeleteableRange) {
|
||||
func (le *lessor) SetRangeDeleter(rd RangeDeleter) {
|
||||
le.mu.Lock()
|
||||
defer le.mu.Unlock()
|
||||
|
||||
le.dr = dr
|
||||
le.rd = rd
|
||||
}
|
||||
|
||||
// TODO: when lessor is under high load, it should give out lease
|
||||
|
@ -196,9 +195,9 @@ func (le *lessor) Revoke(id LeaseID) error {
|
|||
return ErrLeaseNotFound
|
||||
}
|
||||
|
||||
if le.dr != nil {
|
||||
if le.rd != nil {
|
||||
for item := range l.itemSet {
|
||||
le.dr.DeleteRange([]byte(item.Key), nil)
|
||||
le.rd.DeleteRange([]byte(item.Key), nil)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -270,12 +269,12 @@ func (le *lessor) Attach(id LeaseID, items []LeaseItem) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (le *lessor) Recover(b backend.Backend, dr DeleteableRange) {
|
||||
func (le *lessor) Recover(b backend.Backend, rd RangeDeleter) {
|
||||
le.mu.Lock()
|
||||
defer le.mu.Unlock()
|
||||
|
||||
le.b = b
|
||||
le.dr = dr
|
||||
le.rd = rd
|
||||
le.leaseMap = make(map[LeaseID]*Lease)
|
||||
|
||||
le.initAndRecover()
|
||||
|
|
|
@ -68,10 +68,10 @@ func TestLessorRevoke(t *testing.T) {
|
|||
defer os.RemoveAll(dir)
|
||||
defer be.Close()
|
||||
|
||||
fd := &fakeDeleteable{}
|
||||
fd := &fakeDeleter{}
|
||||
|
||||
le := newLessor(1, be)
|
||||
le.SetDeleteableRange(fd)
|
||||
le.SetRangeDeleter(fd)
|
||||
|
||||
// grant a lease with long term (100 seconds) to
|
||||
// avoid early termination during the test.
|
||||
|
@ -157,11 +157,11 @@ func TestLessorRecover(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
type fakeDeleteable struct {
|
||||
type fakeDeleter struct {
|
||||
deleted []string
|
||||
}
|
||||
|
||||
func (fd *fakeDeleteable) DeleteRange(key, end []byte) (int64, int64) {
|
||||
func (fd *fakeDeleter) DeleteRange(key, end []byte) (int64, int64) {
|
||||
fd.deleted = append(fd.deleted, string(key)+"_"+string(end))
|
||||
return 0, 0
|
||||
}
|
||||
|
|
|
@ -81,7 +81,7 @@ func NewStore(b backend.Backend, le lease.Lessor) *store {
|
|||
}
|
||||
|
||||
if s.le != nil {
|
||||
s.le.SetDeleteableRange(s)
|
||||
s.le.SetRangeDeleter(s)
|
||||
}
|
||||
|
||||
tx := s.b.BatchTx()
|
||||
|
|
Loading…
Reference in New Issue