diff --git a/ConflictSet.cpp b/ConflictSet.cpp index d192bc4..bfc5374 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -800,7 +800,6 @@ struct WriteContext { int64_t nodes_allocated; int64_t nodes_released; int64_t point_writes; - int64_t prefix_writes; int64_t range_writes; int64_t write_bytes; } accum; @@ -3188,55 +3187,6 @@ void fixupMaxVersion(Node *node, ConflictSet::Impl *impl, WriteContext *tls) { setMaxVersion(node, impl, max); } -void addPrefixWrite(Node *&root, std::span begin, - std::span end, InternalVersionT writeVersion, - WriteContext *tls, ConflictSet::Impl *impl) { - ++tls->accum.prefix_writes; - int lcp = begin.size() - 1; - - Node **useAsRoot = - insert(&root, begin.subspan(0, lcp), writeVersion, tls, impl); - - auto *beginNode = - *insert(useAsRoot, begin.subspan(lcp, 1), writeVersion, tls, impl); - - const bool insertedBegin = !beginNode->entryPresent; - - addKey(beginNode); - beginNode->entryPresent = true; - - if (insertedBegin) { - ++tls->accum.entries_inserted; - auto *p = nextLogical(beginNode); - beginNode->entry.rangeVersion = - p == nullptr ? tls->zero : std::max(p->entry.rangeVersion, tls->zero); - beginNode->entry.pointVersion = writeVersion; - } - assert(writeVersion >= beginNode->entry.pointVersion); - beginNode->entry.pointVersion = writeVersion; - - auto *endNode = - *insert(useAsRoot, end.subspan(lcp, 1), writeVersion, tls, impl); - - const bool insertedEnd = !endNode->entryPresent; - - addKey(endNode); - endNode->entryPresent = true; - - if (insertedEnd) { - ++tls->accum.entries_inserted; - auto *p = nextLogical(endNode); - endNode->entry.pointVersion = - p == nullptr ? tls->zero : std::max(p->entry.rangeVersion, tls->zero); - } - endNode->entry.rangeVersion = writeVersion; - - eraseBetween(getInTree(beginNode, impl), 0, 256, tls); - - // Inserting end trashed endNode's maxVersion. Fix that - fixupMaxVersion(endNode, impl, tls); -} - void addWriteRange(Node *&root, std::span begin, std::span end, InternalVersionT writeVersion, WriteContext *tls, ConflictSet::Impl *impl) { @@ -3247,10 +3197,6 @@ void addWriteRange(Node *&root, std::span begin, end.back() == 0) { return addPointWrite(root, begin, writeVersion, tls, impl); } - if (lcp == int(begin.size() - 1) && end.size() == begin.size() && - int(begin.back()) + 1 == int(end.back())) { - return addPrefixWrite(root, begin, end, writeVersion, tls, impl); - } ++tls->accum.range_writes; const bool beginIsPrefix = lcp == int(begin.size()); @@ -3457,7 +3403,6 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl { memory_bytes.set(totalBytes); point_writes_total.add(tls.accum.point_writes); - prefix_writes_total.add(tls.accum.prefix_writes); range_writes_total.add(tls.accum.range_writes); nodes_allocated_total.add(tls.accum.nodes_allocated); nodes_released_total.add(tls.accum.nodes_released); @@ -3656,7 +3601,6 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl { "Total number of checks where the result is \"too old\""); COUNTER(check_bytes_total, "Total number of key bytes checked"); COUNTER(point_writes_total, "Total number of point writes"); - COUNTER(prefix_writes_total, "Total number of prefix writes"); COUNTER(range_writes_total, "Total number of range writes"); GAUGE(memory_bytes, "Total number of bytes in use"); COUNTER(nodes_allocated_total,