summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Noma <gregory.noma@gmail.com>2022-03-30 17:40:36 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-03-30 18:11:43 +0000
commitf9bbbfb86db15ac7e4111890447dc46caf5fe4b4 (patch)
treefb6a8a3a135c134cc360871ee1f40ec569b9881d
parent0ca2e8841b68f48903fa7abd387b8a9413db353f (diff)
downloadmongo-f9bbbfb86db15ac7e4111890447dc46caf5fe4b4.tar.gz
SERVER-64797 Use `WT_SESSION::timestamp_transaction_uint`
-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;
}