swift/test/unit/container
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 Initial commit of Swift code 2010-07-12 17:03:45 -05:00
test_auditor.py Cleanup tests' import of debug_logger 2021-04-27 12:04:41 +01:00
test_backend.py swift-manage-shard-ranges: add 'merge' subcommand 2022-08-30 13:00:32 +01:00
test_reconciler.py Get rid of pipeline_property 2022-01-27 14:40:27 -08:00
test_replicator.py sharder/replicator: emit stats for DBs created or existing 2022-07-30 17:30:19 +01:00
test_server.py container-server: return objects of a given policy 2021-08-16 11:56:54 +01:00
test_sharder.py sharder: merge shard shard_ranges from root while sharding 2022-11-16 16:12:32 +00:00
test_sync.py Modify log_name in internal clients' pipeline configs 2022-01-12 11:07:25 +00:00
test_sync_store.py Cleanup tests' import of debug_logger 2021-04-27 12:04:41 +01:00
test_updater.py updaters: use replication network 2021-12-10 13:31:45 +00:00