swift/swift/cli
Alistair Coles 2bcf3d1a8e sharder: merge shard shard_ranges from root while sharding
We've seen shards become stuck while sharding because they had
incomplete or stale deleted shard ranges. The root container had more
complete and useful shard ranges into which objects could have been
cleaved, but the shard never merged the root's shard ranges.

While the sharder is auditing shard container DBs it would previously
only merge shard ranges fetched from root into the shard DB if the
shard was shrinking or the shard ranges were known to be children of
the shard. With this patch the sharder will now merge other shard
ranges from root during sharding as well as shrinking.

Shard ranges from root are only merged if they would not result in
overlaps or gaps in the set of shard ranges in the shard DB. Shard
ranges that are known to be ancestors of the shard are never merged,
except the root shard range which may be merged into a shrinking
shard. These checks were not previously applied when merging
shard ranges into a shrinking shard.

The two substantive changes with this patch are therefore:

  - shard ranges from root are now merged during sharding,
    subject to checks.
  - shard ranges from root are still merged during shrinking,
    but are now subjected to checks.

Change-Id: I066cfbd9062c43cd9638710882ae9bd85a5b4c37
2022-11-16 16:12:32 +00:00
..
__init__.py Add some tests for bin/swift-recon 2014-01-31 15:34:37 +00:00
container_deleter.py Modify log_name in internal clients' pipeline configs 2022-01-12 11:07:25 +00:00
dispersion_report.py Clean up some replication error messages 2022-10-23 15:24:23 -07:00
form_signature.py py3: port cli form_signature and unit tests 2018-03-13 06:19:44 +00:00
info.py swift-get-nodes: move --path-as-is to end of curl commands 2021-05-12 12:41:20 +01:00
manage_shard_ranges.py sharder: merge shard shard_ranges from root while sharding 2022-11-16 16:12:32 +00:00
recon.py recon: only query each host once for disk usage 2021-11-26 14:25:38 +00:00
relinker.py Remove support for --link-check-limit 2021-07-14 14:57:11 -07:00
ring_builder_analyzer.py Fix the reST field raises in docstrings 2017-06-28 09:10:24 +08:00
ringbuilder.py ring-builder: Better format large weights 2022-08-02 14:29:16 -07:00
ringcomposer.py Experimental swift-ring-composer CLI to build composite rings 2018-06-14 09:50:55 +01:00
shard-info.py swift-manage-shard-ranges: add 'compact' command 2021-02-05 17:18:29 +00:00