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

Method proccessRecoveryWriteRequest

cpp/core/LogsDB.cpp:921–938  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

919 }
920
921 void proccessRecoveryWriteRequest(ReplicaId fromReplicaId, uint64_t requestId, const LogRecoveryWriteReq& request) {
922 if (unlikely(fromReplicaId != request.nomineeToken.replica())) {
923 LOG_ERROR(_env, "Nominee token from replica id %s does not have matching replica id. Token: %s", fromReplicaId, request.nomineeToken);
924 return;
925 }
926 auto& response = _reqResp.newResponse(fromReplicaId, requestId);
927 auto& recoveryWriteResponse = response.msg.body.setLogRecoveryWrite();
928 if (request.nomineeToken != _metadata.getNomineeToken()) {
929 recoveryWriteResponse.result = TernError::LEADER_PREEMPTED;
930 return;
931 }
932 _leaderLastActive = ternNow();
933 LogsDBLogEntry entry;
934 entry.idx = request.idx;
935 entry.value = request.value.els;
936 _data.writeLogEntry(entry);
937 recoveryWriteResponse.result = TernError::NO_ERROR;
938 }
939
940 TernError writeLogEntries(LeaderToken token, LogIdx newlastReleased, std::vector<LogsDBLogEntry>& entries) {
941 auto err = _metadata.updateLeaderToken(token);

Callers 1

Calls 4

ternNowFunction · 0.85
replicaMethod · 0.80
getNomineeTokenMethod · 0.80
writeLogEntryMethod · 0.80

Tested by

no test coverage detected