storage: implement RangeKeyChanged
for MVCCIncrementalIterator
#86105
Labels
A-kv-replication
Relating to Raft, consensus, and coordination.
C-performance
Perf of queries or internals. Solution not expected to change functional behavior.
The
RangeKeyChanged()
iterator method can allow for significant performance improvements when iterating across spans and detecting MVCC range keys. However, this hasn't been implemented forMVCCIncrementalIterator
, because of two complications:The iterator can hide range keys, so even though the range key may change in the underlying iterator, it may not in the incremental iterator (because the range keys were never exposed).
NextIgnoringTime()
andNextKeyIgnoringTime()
may cause the exposed range keys to change -- both by revealing a previously hidden range key span, and by revealing additional versions for currently exposed range keys. These should most likely causeRangeKeyChanged()
to trigger, as should the reversal to regular time-bound iteration.Jira issue: CRDB-18576
Epic CRDB-2624
The text was updated successfully, but these errors were encountered: