Alistair Coles ed6586c460 sharder: stall cleaving at shard range gaps
Previously the sharder cleaving process would skip over gaps in shard
ranges. Gaps are not normally expected, but could occur if, for
example, multiple inconsistent decisions are made to configure shards
for shrinking, resulting in a shrinking shard having insufficient
acceptor shard to cover its namespace. In these circumstances the
shrinking shard's cleaving process should stall when it encounters a
gap in the acceptors. This is achieved by always checking that the
lower bound of the next shard range to cleave is less than or equal to
the current cleaving cursor. Cleaving will resume when a suitable
acceptor becomes available to cover the namespace gap.

Change-Id: I1046a5cf809d2a905ede5e1f285939c91843074d
2021-04-29 09:38:48 +01:00
..
2010-07-12 17:03:45 -05:00