MCPcopy Create free account
hub / github.com/apple/foundationdb / EventCommitError

Class EventCommitError

fdbclient/include/fdbclient/ClientLogEvents.h:425–480  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

423};
424
425struct EventCommitError : public Event {
426 EventCommitError(double ts,
427 const Optional<Standalone<StringRef>>& dcId,
428 int err_code,
429 const CommitTransactionRequest& commit_req,
430 const Optional<TenantName>& tenant)
431 : Event(EventType::ERROR_COMMIT, ts, dcId, tenant), errCode(err_code), req(commit_req) {}
432 EventCommitError() {}
433
434 template <typename Ar>
435 Ar& serialize(Ar& ar) {
436 if (!ar.isDeserializing)
437 return serializer(Event::serialize(ar), errCode, req.transaction, req.arena);
438 else
439 return serializer(ar, errCode, req.transaction, req.arena);
440 }
441
442 int errCode;
443 CommitTransactionRequest
444 req; // Only CommitTransactionRef and Arena object within CommitTransactionRequest is serialized
445
446 void logEvent(std::string id, int maxFieldLength) const {
447 for (auto& read_range : req.transaction.read_conflict_ranges) {
448 TraceEvent ev1("TransactionTrace_CommitError_ReadConflictRange");
449 ev1.setMaxEventLength(-1)
450 .detail("TransactionID", id)
451 .setMaxFieldLength(maxFieldLength)
452 .detail("Begin", read_range.begin)
453 .detail("End", read_range.end);
454 augmentTraceEvent(ev1);
455 }
456
457 for (auto& write_range : req.transaction.write_conflict_ranges) {
458 TraceEvent ev2("TransactionTrace_CommitError_WriteConflictRange");
459 ev2.setMaxEventLength(-1)
460 .detail("TransactionID", id)
461 .setMaxFieldLength(maxFieldLength)
462 .detail("Begin", write_range.begin)
463 .detail("End", write_range.end);
464 augmentTraceEvent(ev2);
465 }
466
467 for (auto& mutation : req.transaction.mutations) {
468 TraceEvent ev3("TransactionTrace_CommitError_Mutation");
469 ev3.setMaxEventLength(-1)
470 .detail("TransactionID", id)
471 .setMaxFieldLength(maxFieldLength)
472 .detail("Mutation", mutation);
473 augmentTraceEvent(ev3);
474 }
475
476 TraceEvent ev4("TransactionTrace_CommitError");
477 ev4.detail("TransactionID", id).detail("ErrCode", errCode);
478 augmentTraceEvent(ev4);
479 }
480};
481} // namespace FdbClientLogEvents
482

Callers 1

Calls 2

serializerFunction · 0.85
serializeFunction · 0.85

Tested by

no test coverage detected