From 588e8eb87fa7171a4930e797b1633af919770297 Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Fri, 23 Feb 2024 16:13:53 -0800 Subject: [PATCH] Add monotonic increasing point writes workload --- Bench.cpp | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/Bench.cpp b/Bench.cpp index 11d3b61..8a502b0 100644 --- a/Bench.cpp +++ b/Bench.cpp @@ -789,10 +789,8 @@ template void benchConflictSet(const std::string &name) { while (version < kMvccWindow) { auto v = ++version; - for (auto &w : writes) { - w.writeVersion = v; - } - cs.addWrites(writes.data(), writes.size()); + writes[0].writeVersion = v; + cs.addWrites(writes.data(), 1); } bench.run(name + " (point writes)", [&]() { @@ -852,6 +850,28 @@ template void benchConflictSet(const std::string &name) { cs.setOldestVersion(version - kMvccWindow); }); } + + bench.batch(1); + + { + bench.run(name + " (monotonic increasing point writes)", [&]() { + auto v = ++version; + ConflictSet::WriteRange w; + + uint8_t b[9]; + b[8] = 0; + auto x = __builtin_bswap64(version); + memcpy(b, &x, 8); + + w.writeVersion = v; + w.begin.p = b; + w.begin.len = 8; + w.end.len = 0; + w.end.p = b; + cs.addWrites(&w, 1); + cs.setOldestVersion(version - kMvccWindow); + }); + } } int main(void) {