foundationdb/design/Commit/grv.sequence

67 lines
1.5 KiB
Plaintext

title Get Read Version
participantgroup **Client** (NativeAPI.actor.cpp)
participant "Transaction::getReadVersion" as gRV
participant "readVersionBatcher" as rVB
participant "getConsistentReadVersion" as gCRV
end
participantgroup **GRVProxy** (GrvProxyServer.actor.cpp)
participant "queueGetReadVersionRequests" as qGRVR
participant "transactionStarter" as tS
participant "getLiveCommittedVersion" as gLCV
end
participantgroup **Master** (masterserver.actor.cpp)
participant "serveLiveCommittedVersion" as sLCV
end
autoactivation off
gRV -> rVB: VersionRequest
loop Batch requests
box over rVB:Batch read version requests
end
note right of rVB: <color:#green>//TransactionAttachID//</color>
rVB -> gCRV:
note right of gCRV: <color:#blue>Before</color>
gCRV -> qGRVR: GetReadVersionRequest
loop Batch requests
box over qGRVR: Batch read version requests
end
note right of qGRVR: <color:#lightblue>--GrvProxyServer.queueTransactionStartRequests.Before--</color>
qGRVR -> tS:
note right of tS: <color:#green>//TransactionAttachID//</color>
note right of tS: <color:#blue>AskLiveCommittedVersionFromMaster</color>
tS -> gLCV:
note right of gLCV: <color:#blue>confirmEpochLive</color>
gLCV -> sLCV: GetRawCommittedVersionRequest
note right of sLCV: <color:#blue>GetRawCommittedVersion</color>
sLCV --> gLCV: GetRawCommittedVersionReply
note right of gLCV: <color:#blue>After</color>
gLCV --> gCRV: GetReadVersionReply
note right of gCRV: <color:#blue>After</color>
gCRV --> rVB: GetReadVersionReply
rVB --> gRV: GetReadVersionReply