bcecddd517
Previously a shard might be shrunk if its object_count was fell below the shrink_threshold. However, it is possible that a shard with few objects has a large number of tombstones, which would result in a larger than anticipated replication of rows to the acceptor shard. With this patch, a shard's row count (i.e. the sum of tombstones and objects) must be below the shrink_threshold before the shard will be considered for shrinking. A number of changes are made to enable tombstone count to be used in shrinking decisions: - DatabaseBroker reclaim is enhanced to count remaining tombstones after rows have been reclaimed. A new TombstoneReclaimer class is added to encapsulate the reclaim process and tombstone count. - ShardRange has new 'tombstones' and 'row_count' attributes. - A 'tombstones' column is added to the Containerbroker shard_range table. - The sharder performs a reclaim prior to reporting shard container stats to the root container so that the tombstone count can be included. - The sharder uses 'row_count' rather than 'object_count' when evaluating if a shard range is a shrink candidate. Change-Id: I41b86c19c243220b7f1c01c6ecee52835de972b6 |
||
---|---|---|
.. | ||
__init__.py | ||
test_auditor.py | ||
test_backend.py | ||
test_reaper.py | ||
test_replicator.py | ||
test_server.py | ||
test_utils.py |