Change server bench to point write heavy workload
All checks were successful
Tests / 64 bit versions total: 5794, passed: 5794
Tests / Debug total: 5792, passed: 5792
Tests / SIMD fallback total: 5794, passed: 5794
Tests / Release [clang] total: 5794, passed: 5794
Clang |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc] total: 5794, passed: 5794
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [clang,aarch64] total: 3836, passed: 3836
Tests / Coverage total: 3876, passed: 3876
Code Coverage #### Project Overview No changes detected, that affect the code coverage. * Line Coverage: 97.23% (2667/2743) * Branch Coverage: 48.95% (9913/20253) * Complexity Density: 0.00 * Lines of Code: 2743 #### Quality Gates Summary Output truncated.
weaselab/conflict-set/pipeline/head This commit looks good

This commit is contained in:
2024-10-27 22:28:03 -07:00
parent e025f934d8
commit cf25b8626c

View File

@@ -1,5 +1,6 @@
#include <atomic>
#include <cstdint>
#include <cstdlib>
#include <errno.h>
#include <netdb.h>
#include <stdio.h>
@@ -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<weaselab::ConflictSet::Result> results(kNumReads);
constexpr int kNumWrites = 16;
for (;; transactions.fetch_add(1, std::memory_order_relaxed)) {
std::vector<std::string> keys(kNumReads);
for (auto &k : keys) {
k = makeKey(rand() % kNumPrefixes, 49);
std::vector<std::string> keys;
std::vector<weaselab::ConflictSet::WriteRange> writes;
for (int i = 0; i < kNumWrites; ++i) {
keys.push_back(makeKey(rand() % kNumPrefixes, rand() % 50));
}
std::vector<weaselab::ConflictSet::ReadRange> 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;
}
}