summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_begin_transaction_block.cpp13
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp11
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;
}