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

Method proccessLogWriteRequest

cpp/core/LogsDB.cpp:1169–1194  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1167 _lastReleased(0) {}
1168
1169 void proccessLogWriteRequest(LogsDBRequest& request) {
1170 ALWAYS_ASSERT(request.msg.body.kind() == LogMessageKind::LOG_WRITE);
1171 const auto& writeRequest = request.msg.body.getLogWrite();
1172 if (unlikely(request.replicaId != writeRequest.token.replica())) {
1173 LOG_ERROR(_env, "Token from replica id %s does not have matching replica id. Token: %s", request.replicaId, writeRequest.token);
1174 return;
1175 }
1176 if (unlikely(writeRequest.token < _token)) {
1177 auto& resp = _reqResp.newResponse(request.replicaId, request.msg.id);
1178 auto& writeResponse = resp.msg.body.setLogWrite();
1179 writeResponse.result = TernError::LEADER_PREEMPTED;
1180 return;
1181 }
1182 if (unlikely(_token < writeRequest.token )) {
1183 writeBatch();
1184 _token = writeRequest.token;
1185 }
1186 _requests.emplace_back(&request);
1187 _entries.emplace_back();
1188 auto& entry = _entries.back();
1189 entry.idx = writeRequest.idx;
1190 entry.value = writeRequest.value.els;
1191 if (_lastReleased < writeRequest.lastReleased) {
1192 _lastReleased = writeRequest.lastReleased;
1193 }
1194 }
1195
1196 void proccessReleaseRequest(ReplicaId fromReplicaId, uint64_t requestId, const ReleaseReq& request) {
1197 if (unlikely(fromReplicaId != request.token.replica())) {

Callers 1

Calls 2

replicaMethod · 0.80
kindMethod · 0.45

Tested by

no test coverage detected