MCPcopy Create free account
hub / github.com/XTXMarkets/ternfs / proccessRecoveryReadRequest

Method proccessRecoveryReadRequest

cpp/core/LogsDB.cpp:901–919  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

899 }
900
901 void proccessRecoveryReadRequest(ReplicaId fromReplicaId, uint64_t requestId, const LogRecoveryReadReq& request) {
902 if (unlikely(fromReplicaId != request.nomineeToken.replica())) {
903 LOG_ERROR(_env, "Nominee token from replica id %s does not have matching replica id. Token: %s", fromReplicaId, request.nomineeToken);
904 return;
905 }
906 auto& response = _reqResp.newResponse(fromReplicaId, requestId);
907 auto& recoveryReadResponse = response.msg.body.setLogRecoveryRead();
908 if (request.nomineeToken != _metadata.getNomineeToken()) {
909 recoveryReadResponse.result = TernError::LEADER_PREEMPTED;
910 return;
911 }
912 _leaderLastActive = ternNow();
913 LogsDBLogEntry entry;
914 auto err = _data.readLogEntry(request.idx, entry);
915 recoveryReadResponse.result = err;
916 if (err == TernError::NO_ERROR) {
917 recoveryReadResponse.value.els = entry.value;
918 }
919 }
920
921 void proccessRecoveryWriteRequest(ReplicaId fromReplicaId, uint64_t requestId, const LogRecoveryWriteReq& request) {
922 if (unlikely(fromReplicaId != request.nomineeToken.replica())) {

Callers 1

Calls 4

ternNowFunction · 0.85
replicaMethod · 0.80
getNomineeTokenMethod · 0.80
readLogEntryMethod · 0.80

Tested by

no test coverage detected