Make sure setOldestVersion has work to do in bench
This commit is contained in:
14
Bench.cpp
14
Bench.cpp
@@ -787,13 +787,21 @@ template <class ConflictSet_> void benchConflictSet(const std::string &name) {
|
||||
++iter;
|
||||
}
|
||||
|
||||
while (version < kMvccWindow) {
|
||||
auto v = ++version;
|
||||
for (auto &w : writes) {
|
||||
w.writeVersion = v;
|
||||
}
|
||||
cs.addWrites(writes.data(), writes.size());
|
||||
}
|
||||
|
||||
bench.run(name + " (point writes)", [&]() {
|
||||
auto v = ++version;
|
||||
for (auto &w : writes) {
|
||||
w.writeVersion = v;
|
||||
}
|
||||
cs.addWrites(writes.data(), writes.size());
|
||||
cs.setOldestVersion(std::max<int64_t>(version - kMvccWindow, 0));
|
||||
cs.setOldestVersion(version - kMvccWindow);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -817,7 +825,7 @@ template <class ConflictSet_> void benchConflictSet(const std::string &name) {
|
||||
w.writeVersion = v;
|
||||
}
|
||||
cs.addWrites(writes.data(), writes.size());
|
||||
cs.setOldestVersion(std::max<int64_t>(version - kMvccWindow, 0));
|
||||
cs.setOldestVersion(version - kMvccWindow);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -841,7 +849,7 @@ template <class ConflictSet_> void benchConflictSet(const std::string &name) {
|
||||
w.writeVersion = v;
|
||||
}
|
||||
cs.addWrites(writes.data(), writes.size());
|
||||
cs.setOldestVersion(std::max<int64_t>(version - kMvccWindow, 0));
|
||||
cs.setOldestVersion(version - kMvccWindow);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@@ -1743,6 +1743,9 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl {
|
||||
}
|
||||
|
||||
void setOldestVersion(int64_t oldestVersion) {
|
||||
if (oldestVersion <= this->oldestVersion) {
|
||||
return;
|
||||
}
|
||||
this->oldestVersion = oldestVersion;
|
||||
Node *prev = firstGeq(root, removalKey).n;
|
||||
// There's no way to erase removalKey without introducing a key after it
|
||||
|
Reference in New Issue
Block a user