mirror of
https://github.com/apple/foundationdb.git
synced 2025-06-02 19:25:52 +08:00
Add more tracing to move keys locking events
This commit is contained in:
parent
f13039e6d4
commit
2bbc6d68ba
@ -67,12 +67,11 @@ ACTOR Future<MoveKeysLock> takeMoveKeysLock( Database cx, UID ddId ) {
|
|||||||
loop {
|
loop {
|
||||||
try {
|
try {
|
||||||
state MoveKeysLock lock;
|
state MoveKeysLock lock;
|
||||||
|
state UID txnId;
|
||||||
tr.setOption(FDBTransactionOptions::PRIORITY_SYSTEM_IMMEDIATE);
|
tr.setOption(FDBTransactionOptions::PRIORITY_SYSTEM_IMMEDIATE);
|
||||||
if( !g_network->isSimulated() ) {
|
if( !g_network->isSimulated() ) {
|
||||||
UID id(deterministicRandom()->randomUniqueID());
|
txnId = deterministicRandom()->randomUniqueID();
|
||||||
TraceEvent("TakeMoveKeysLockTransaction", ddId)
|
tr.debugTransaction(txnId);
|
||||||
.detail("TransactionUID", id);
|
|
||||||
tr.debugTransaction( id );
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
Optional<Value> readVal = wait( tr.get( moveKeysLockOwnerKey ) );
|
Optional<Value> readVal = wait( tr.get( moveKeysLockOwnerKey ) );
|
||||||
@ -83,6 +82,11 @@ ACTOR Future<MoveKeysLock> takeMoveKeysLock( Database cx, UID ddId ) {
|
|||||||
lock.prevWrite = readVal.present() ? BinaryReader::fromStringRef<UID>(readVal.get(), Unversioned()) : UID();
|
lock.prevWrite = readVal.present() ? BinaryReader::fromStringRef<UID>(readVal.get(), Unversioned()) : UID();
|
||||||
}
|
}
|
||||||
lock.myOwner = deterministicRandom()->randomUniqueID();
|
lock.myOwner = deterministicRandom()->randomUniqueID();
|
||||||
|
TraceEvent("TakeMoveKeysLockTransaction", ddId)
|
||||||
|
.detail("TransactionUID", txnId)
|
||||||
|
.detail("PrevOwner", lock.prevOwner.toString())
|
||||||
|
.detail("PrevWrite", lock.prevWrite.toString())
|
||||||
|
.detail("MyOwner", lock.myOwner.toString());
|
||||||
tr.set(moveKeysLockOwnerKey, BinaryWriter::toValue(lock.myOwner, Unversioned()));
|
tr.set(moveKeysLockOwnerKey, BinaryWriter::toValue(lock.myOwner, Unversioned()));
|
||||||
wait(tr.commit());
|
wait(tr.commit());
|
||||||
return lock;
|
return lock;
|
||||||
@ -111,11 +115,19 @@ ACTOR Future<Void> checkMoveKeysLock( Transaction* tr, MoveKeysLock lock, bool i
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Take the lock
|
// Take the lock
|
||||||
if(isWrite) {
|
if (isWrite) {
|
||||||
BinaryWriter wrMyOwner(Unversioned()); wrMyOwner << lock.myOwner;
|
BinaryWriter wrMyOwner(Unversioned());
|
||||||
tr->set( moveKeysLockOwnerKey, wrMyOwner.toValue() );
|
wrMyOwner << lock.myOwner;
|
||||||
BinaryWriter wrLastWrite(Unversioned()); wrLastWrite << deterministicRandom()->randomUniqueID();
|
tr->set(moveKeysLockOwnerKey, wrMyOwner.toValue());
|
||||||
tr->set( moveKeysLockWriteKey, wrLastWrite.toValue() );
|
BinaryWriter wrLastWrite(Unversioned());
|
||||||
|
UID lastWriter = deterministicRandom()->randomUniqueID();
|
||||||
|
wrLastWrite << lastWriter;
|
||||||
|
tr->set(moveKeysLockWriteKey, wrLastWrite.toValue());
|
||||||
|
TraceEvent("CheckMoveKeysLock")
|
||||||
|
.detail("PrevOwner", lock.prevOwner.toString())
|
||||||
|
.detail("PrevWrite", lock.prevWrite.toString())
|
||||||
|
.detail("MyOwner", lock.myOwner.toString())
|
||||||
|
.detail("Writer", lastWriter.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
return Void();
|
return Void();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user