You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
144613: kvserver: hard-code RangeKeysInOrder=true r=tbg a=tbg
In the 24.3 release, this bool was introduced and unconditionally set to true in #129088:
$ git log v24.3.0 -1 --oneline --grep 'kvserver: reenable splitting of snapshot sstables'
129088: kvserver: reenable splitting of snapshot sstables r=aadityasondhi a=itsbilal
This change updates the snapshot strategy's sender side to iterate over
points and ranges together, instead of only iterating on points first, then
only ranges. This allows us to more efficiently split snapshot sstables on
the receiver side. To avoid the need to add a version gate on the receiver
side, we propagate a bool, RangeKeysInOrder, to the receiver which is a
signal to it to enable sstable splits.
Since we are now in the v25.3 release cycle, we can safely assume that this bool is always
set on all incoming snapshots headers. This is because the v25.2 release is not skippable
and both possible upgrade paths into it go through v24.3, which already sets this bool.
The same will be true for the v25.3 release, which can only be reached through v25.2.

*However*, we cannot remove the header field yet. This can only be done in a
follow-up migration in a few releases, since the absence of the field would
communicate to receivers who are not running with this first step of the
migration (25.2 and before) that the range keys are out of order, but they
would not be. Perhaps the code would support this, but it's not a risk we're
interested in taking.
We can only remove the proto field in the v26.1 release: v26.1 is the first
release that has 25.4 in its required upgrade path, and since 25.3 is skippable,
25.4 still has to interop with 25.2 which precedes the hard-coding of the bool.
A comment to this effect was added on the proto.
Epic: CRDB-46488
Release note: none
Co-authored-by: Tobias Grieger <[email protected]>
0 commit comments