e91de49d68
This patch makes a number of changes to enable content-type metadata to be updated when using the fast-POST mode of operation, as proposed in the associated spec [1]. * the object server and diskfile are modified to allow content-type to be updated by a POST and the updated value to be stored in .meta files. * the object server accepts PUTs and DELETEs with older timestamps than existing .meta files. This is to be consistent with replication that will leave a later .meta file in place when replicating a .data file. * the diskfile interface is modified to provide accessor methods for the content-type and its timestamp. * the naming of .meta files is modified to encode two timestamps when the .meta file contains a content-type value that was set prior to the latest metadata update; this enables consistency to be achieved when rsync is used for replication. * ssync is modified to sync meta files when content-type differs between local and remote copies of objects. * the object server issues container updates when handling POST requests, notifying the container server of the current immutable metadata (etag, size, hash, swift_bytes), content-type with their respective timestamps, and the mutable metadata timestamp. * the container server maintains the most recently reported values for immutable metadata, content-type and mutable metadata, each with their respective timestamps, in a single db row. * new probe tests verify that replication achieves eventual consistency of containers and objects after discrete updates to content-type and mutable metadata, and that container-sync sync's objects after fast-post updates. [1] spec change-id: I60688efc3df692d3a39557114dca8c5490f7837e Change-Id: Ia597cd460bb5fd40aa92e886e3e18a7542603d01 |
||
---|---|---|
.. | ||
middleware | ||
ring | ||
__init__.py | ||
corrupted_example.db | ||
malformed_example.db | ||
test_base_storage_server.py | ||
test_bufferedhttp.py | ||
test_constraints.py | ||
test_container_sync_realms.py | ||
test_daemon.py | ||
test_db_replicator.py | ||
test_db.py | ||
test_direct_client.py | ||
test_exceptions.py | ||
test_internal_client.py | ||
test_manager.py | ||
test_memcached.py | ||
test_request_helpers.py | ||
test_splice.py | ||
test_storage_policy.py | ||
test_swob.py | ||
test_utils.py | ||
test_wsgi.py |