diff options
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_begin_transaction_block.cpp | 13 | ||||
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp | 11 |
2 files changed, 5 insertions, 19 deletions
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_begin_transaction_block.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_begin_transaction_block.cpp index 0954cdb7ddc..42ab62e3b2a 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_begin_transaction_block.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_begin_transaction_block.cpp @@ -88,16 +88,9 @@ WiredTigerBeginTxnBlock::~WiredTigerBeginTxnBlock() { Status WiredTigerBeginTxnBlock::setReadSnapshot(Timestamp readTimestamp) { invariant(_rollback); - // Avoid heap allocation in favour of a stack allocation for the configuration string. - static constexpr auto configFmtString = "read_timestamp={:x}"; - static constexpr auto numBytesRequired = std::char_traits<char>::length(configFmtString) + - (sizeof(decltype(readTimestamp.asULL())) * 2) + 1; - std::array<char, numBytesRequired> configString; - auto end = - fmt::format_to(configString.begin(), FMT_STRING(configFmtString), readTimestamp.asULL()); - *end = '\0'; - - return wtRCToStatus(_session->timestamp_transaction(_session, configString.data()), _session); + return wtRCToStatus( + _session->timestamp_transaction_uint(_session, WT_TS_TXN_TYPE_READ, readTimestamp.asULL()), + _session); } void WiredTigerBeginTxnBlock::done() { diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp index ab435ba9e09..4fe60f56356 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp @@ -829,15 +829,8 @@ Status WiredTigerRecoveryUnit::setTimestamp(Timestamp timestamp) { return Status::OK(); } - // Avoid heap allocation in favour of a stack allocation. - static constexpr auto formatString = "commit_timestamp={:X}"; - static constexpr auto bytesToAllocate = std::char_traits<char>::length(formatString) + - (sizeof(decltype(timestamp.asULL())) * 2) + 1; - std::array<char, bytesToAllocate> conf; - auto end = fmt::format_to(conf.begin(), FMT_COMPILE(formatString), timestamp.asULL()); - // Manual null-termination - *end = '\0'; - auto rc = session->timestamp_transaction(session, conf.data()); + auto rc = + session->timestamp_transaction_uint(session, WT_TS_TXN_TYPE_COMMIT, timestamp.asULL()); if (rc == 0) { _isTimestamped = true; } |