From cf25b8626c5d75e63b1375216a40721107359289 Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Sun, 27 Oct 2024 22:28:03 -0700 Subject: [PATCH] Change server bench to point write heavy workload --- ServerBench.cpp | 44 ++++++++++++-------------------------------- 1 file changed, 12 insertions(+), 32 deletions(-) diff --git a/ServerBench.cpp b/ServerBench.cpp index c88f8ba..a75932f 100644 --- a/ServerBench.cpp +++ b/ServerBench.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -37,41 +38,20 @@ std::string makeKey(int64_t num, int suffixLen) { void workload(weaselab::ConflictSet *cs) { int64_t version = kWindowSize; - for (int i = 0; i < kNumPrefixes; ++i) { - for (int j = 0; j < 50; ++j) { - weaselab::ConflictSet::WriteRange wr; - auto k = makeKey(i, j); - wr.begin.p = (const uint8_t *)k.data(); - wr.begin.len = k.size(); - wr.end.len = 0; - cs->addWrites(&wr, 1, version); - } - } - ++version; - for (int i = 0; i < kNumPrefixes; ++i) { - weaselab::ConflictSet::WriteRange wr; - auto k = makeKey(i, 50); - wr.begin.p = (const uint8_t *)k.data(); - wr.begin.len = k.size(); - wr.end.len = 0; - cs->addWrites(&wr, 1, version); - } - - constexpr int kNumReads = 1; - std::vector results(kNumReads); + constexpr int kNumWrites = 16; for (;; transactions.fetch_add(1, std::memory_order_relaxed)) { - std::vector keys(kNumReads); - for (auto &k : keys) { - k = makeKey(rand() % kNumPrefixes, 49); + std::vector keys; + std::vector writes; + for (int i = 0; i < kNumWrites; ++i) { + keys.push_back(makeKey(rand() % kNumPrefixes, rand() % 50)); } - std::vector reads(kNumReads); - for (int i = 0; i < reads.size(); ++i) { - reads[i].begin.p = (const uint8_t *)(keys[i].data()); - reads[i].begin.len = keys[i].size(); - reads[i].end.len = 0; - reads[i].readVersion = version - 1; + for (int i = 0; i < kNumWrites; ++i) { + writes.push_back({{(const uint8_t *)keys[i].data(), int(keys[i].size())}, + {nullptr, 0}}); } - cs->check(reads.data(), results.data(), kNumReads); + cs->addWrites(writes.data(), writes.size(), version); + cs->setOldestVersion(version - kWindowSize); + ++version; } }