Skip to content

Commit

Permalink
Optimize GetOrNewLockManager
Browse files Browse the repository at this point in the history
  • Loading branch information
snower committed Dec 30, 2024
1 parent 0d1b8a9 commit 043a8d8
Showing 1 changed file with 12 additions and 7 deletions.
19 changes: 12 additions & 7 deletions server/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -1095,18 +1095,23 @@ func (self *LockDB) GetOrNewLockManager(command *protocol.LockCommand) *LockMana
atomic.AddUint32(&lockManager.state.KeyCount, 1)
return lockManager
}
if atomic.LoadUint32(&fastValue.lock) == 1 {
if atomic.LoadUint32(&fastValue.lock) == 2 {
fastLockManager := fastValue.manager
if fastLockManager != nil && fastLockManager.lockKey == command.LockKey && atomic.LoadUint32(&fastLockManager.refCount) != 0xffffffff {
return fastLockManager
}
} else {
for i := 1; atomic.LoadUint32(&fastValue.lock) == 1; i++ {
for j := uint16(0); j < self.managerMaxGlocks; j++ {
self.managerGlocks[j].HighPriorityMutexWait()
}
time.Sleep(time.Nanosecond * time.Duration(i))
}
}
if atomic.LoadUint32(&fastValue.lock) == 2 {
fastLockManager := fastValue.manager
if fastLockManager != nil && atomic.LoadUint32(&fastLockManager.refCount) != 0xffffffff && fastLockManager.lockKey == command.LockKey {
return fastLockManager
if atomic.LoadUint32(&fastValue.lock) == 2 {
fastLockManager := fastValue.manager
if fastLockManager != nil && fastLockManager.lockKey == command.LockKey && atomic.LoadUint32(&fastLockManager.refCount) != 0xffffffff {
return fastLockManager
}
}
}

Expand Down Expand Up @@ -1137,7 +1142,7 @@ func (self *LockDB) GetLockManager(command *protocol.LockCommand) *LockManager {

if atomic.LoadUint32(&fastValue.lock) == 2 {
fastLockManager := fastValue.manager
if fastLockManager != nil && atomic.LoadUint32(&fastLockManager.refCount) != 0xffffffff && fastLockManager.lockKey == command.LockKey {
if fastLockManager != nil && fastLockManager.lockKey == command.LockKey && atomic.LoadUint32(&fastLockManager.refCount) != 0xffffffff {
return fastLockManager
}
}
Expand Down

0 comments on commit 043a8d8

Please sign in to comment.