Skip to content

storage: range merge issues #2433

@bdarnell

Description

@bdarnell

Support for ranges is currently incomplete; this issue tracks the work that must be done to make them safe and usable.

  • Merge queue: identify undersized ranges as candidates for merging.
  • If necessary, replicate ranges to be merged on to the same set of stores. Ensure that the merge gets aborted cleanly if the rebalance/repair process needs to move one of the replicas before the merge completes.
  • Mark the subsumed range as frozen with a special raft command. Ensure that all replicas have processed the freeze command before proceeding with the merge.
  • Once a merge transaction has committed, that transaction must not be replayed onto future replicas (i.e. replicas that were not present when the merging process verified that all replicas had processed the freeze command in the subsumed range) via raft log appends. Snapshots must be used instead.
  • Ensure that merges respect zone/prefix boundaries.
  • Make checks for collocated replicas transactional (AdminMerge: make check for collocated replicas transactional #2431).
  • Delete all range-local data stored under RangeIDKey (remove all metadata related #2426). (storage: MergeRange removes subsumed range's metadata #2604)
  • Store.canApplySnapshot needs to consider the possibility that the snapshot's key span is wider than our present copy's
  • Set the destroyed attribute on the Replica

Metadata

Metadata

Assignees

Labels

A-kv-replicationRelating to Raft, consensus, and coordination.C-investigationFurther steps needed to qualify. C-label will change.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions