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;
|
++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)", [&]() {
|
bench.run(name + " (point writes)", [&]() {
|
||||||
auto v = ++version;
|
auto v = ++version;
|
||||||
for (auto &w : writes) {
|
for (auto &w : writes) {
|
||||||
w.writeVersion = v;
|
w.writeVersion = v;
|
||||||
}
|
}
|
||||||
cs.addWrites(writes.data(), writes.size());
|
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;
|
w.writeVersion = v;
|
||||||
}
|
}
|
||||||
cs.addWrites(writes.data(), writes.size());
|
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;
|
w.writeVersion = v;
|
||||||
}
|
}
|
||||||
cs.addWrites(writes.data(), writes.size());
|
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) {
|
void setOldestVersion(int64_t oldestVersion) {
|
||||||
|
if (oldestVersion <= this->oldestVersion) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
this->oldestVersion = oldestVersion;
|
this->oldestVersion = oldestVersion;
|
||||||
Node *prev = firstGeq(root, removalKey).n;
|
Node *prev = firstGeq(root, removalKey).n;
|
||||||
// There's no way to erase removalKey without introducing a key after it
|
// There's no way to erase removalKey without introducing a key after it
|
||||||
|
Reference in New Issue
Block a user