LockHash
処理イメージ (PUT)
KvClient
(grpc_client)
TPMonitor
(grpc_server)
KvServer
MapStore
LockManager
TxManager
cid = 3
TxCB
HashMap = {
...
(3, *txcb),
}
③ Put(1, 10) (OK)
Put(1, 10)
1
3
10
20
...
LH LR
(LockHead) (LockRequest)
Locked
Unlocked
lock_head_mutex
LH LR
*LR
MapStore
1 10
3 ...
... ...
key : val
① Put(1,10)
② Add.undo
undo
listhead
anchor
undo_head