745581ff2f
After deleting an object, the object expirer deletes the corresponding row from the expirer queue by making DELETE requests directly to the container servers. The same thing happens after attempting to delete an object, but failing because the object has already been deleted. If the DELETE requests fail, then the expirer will encounter that row again on its next pass and retry the DELETE at that time. Therefore, it is not necessary for the object server to write an async_pending for that queue row's deletion. Currently, however, two of the object servers do write such async_pendings. Given Rc container replicas, that's 2 * Rc updates from async_pendings and another Rc from the object expirer directly. Given a typical Rc of 3, that's 9 container updates per expiring object. This commit makes the object server write no async_pendings for DELETE requests coming from the object expirer. This reduces the number of container server requests to Rc (typically 3), all issued directly from the object expirer. Closes-Bug: 1076202 Change-Id: Icd63c80c73f864d2561e745c3154fbfda02bd0cc |
||
---|---|---|
.. | ||
__init__.py | ||
brain.py | ||
common.py | ||
test_account_failures.py | ||
test_account_get_fake_responses_match.py | ||
test_account_reaper.py | ||
test_container_failures.py | ||
test_container_merge_policy_index.py | ||
test_container_sync.py | ||
test_db_replicator.py | ||
test_empty_device_handoff.py | ||
test_object_async_update.py | ||
test_object_expirer.py | ||
test_object_failures.py | ||
test_object_handoff.py | ||
test_object_metadata_replication.py | ||
test_object_partpower_increase.py | ||
test_reconstructor_rebuild.py | ||
test_reconstructor_revert.py | ||
test_replication_servers_working.py | ||
test_signals.py |