Assume writeVersion highest-ever to avoid max calculation
This is measurably faster
This commit is contained in:
@@ -1567,7 +1567,8 @@ template <bool kBegin>
|
||||
|
||||
if constexpr (kBegin) {
|
||||
auto &m = maxVersion(*self, impl);
|
||||
m = std::max(m, writeVersion);
|
||||
assert(writeVersion >= m);
|
||||
m = writeVersion;
|
||||
}
|
||||
|
||||
if (key.size() == 0) {
|
||||
@@ -1576,7 +1577,8 @@ template <bool kBegin>
|
||||
|
||||
if constexpr (!kBegin) {
|
||||
auto &m = maxVersion(*self, impl);
|
||||
m = std::max(m, writeVersion);
|
||||
assert(writeVersion >= m);
|
||||
m = writeVersion;
|
||||
}
|
||||
|
||||
auto &child = getOrCreateChild(*self, key.front(), allocators);
|
||||
@@ -1623,7 +1625,8 @@ void addPointWrite(Node *&root, int64_t oldestVersion,
|
||||
n->entry.rangeVersion =
|
||||
p != nullptr ? p->entry.rangeVersion : oldestVersion;
|
||||
} else {
|
||||
n->entry.pointVersion = std::max(n->entry.pointVersion, writeVersion);
|
||||
assert(writeVersion >= n->entry.pointVersion);
|
||||
n->entry.pointVersion = writeVersion;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1659,7 +1662,8 @@ void addWriteRange(Node *&root, int64_t oldestVersion,
|
||||
}
|
||||
|
||||
auto &m = maxVersion(n, impl);
|
||||
m = std::max(m, writeVersion);
|
||||
assert(writeVersion >= m);
|
||||
m = writeVersion;
|
||||
|
||||
remaining = remaining.subspan(n->partialKeyLen + 1,
|
||||
remaining.size() - (n->partialKeyLen + 1));
|
||||
@@ -1688,9 +1692,10 @@ void addWriteRange(Node *&root, int64_t oldestVersion,
|
||||
maxVersion(beginNode, impl) = writeVersion;
|
||||
}
|
||||
auto &m = maxVersion(beginNode, impl);
|
||||
m = std::max(m, writeVersion);
|
||||
beginNode->entry.pointVersion =
|
||||
std::max(beginNode->entry.pointVersion, writeVersion);
|
||||
assert(writeVersion >= m);
|
||||
m = writeVersion;
|
||||
assert(writeVersion >= beginNode->entry.pointVersion);
|
||||
beginNode->entry.pointVersion = writeVersion;
|
||||
|
||||
auto *endNode = insert<false>(useAsRoot, end, writeVersion, allocators, impl);
|
||||
|
||||
|
Reference in New Issue
Block a user