swift/test/functional
Tim Burke 25d5e686a1 Add the ability to specify ranges for SLO segments
Users can now include an optional 'range' field in segment descriptions
to specify which bytes from the underlying object should be used for the
segment data. Only one range may be specified per segment. Note that the
'etag' and 'size_bytes' fields still describe the backing object as a
whole. So, if a user uploads a manifest like:

    [{"path": "/con/obj_seg_1", "etag": null, "size_bytes": 1048576,
      "range": "0-1023"},
     {"path": "/con/obj_seg_2", "etag": null, "size_bytes": 1048576,
      "range": "512-4095"},
     {"path": "/con/obj_seg_1", "etag": null, "size_bytes": 1048576,
      "range": "-2048"}]

then the segment will consist of the first 1024 bytes of /con/obj_seg_1,
followed by bytes 513 through 4096 (inclusive) of /con/obj_seg_2, and
finally bytes 1046528 through 1048576 (i.e., the last 2048 bytes) of
/con/obj_seg_1.

ETag generation for SLOs had been updated to prevent collisions when
using different ranges for the same set of objects.

Additionally, there are two performance enhancements:

 * On download, multiple sequential requests for segments from the same
   underlying object will be coalesced into a single ranged request,
   provided it still does not meet Swift's "egregious range requests"
   critieria.

 * On upload, multiple sequential segments referencing the same object
   will be validated against the response from a single HEAD request.

Change-Id: Ia21d51c2cef4e2ee5162161dd2c1d3069009b52c
DocImpact
2015-09-23 09:23:39 -07:00
..
__init__.py test/(functional/probe):Replace python print operator with print function (pep H233, py33) 2015-08-20 11:42:58 +09:00
swift_test_client.py Add test that a tempurl POST cannot set a DLO manifest header 2015-08-26 16:30:23 +01:00
test_account.py pep8 fix: assertEquals -> assertEqual 2015-08-05 22:23:54 -04:00
test_container.py pep8 fix: assertEquals -> assertEqual 2015-08-05 22:23:54 -04:00
test_object.py pep8 fix: assertEquals -> assertEqual 2015-08-05 22:23:54 -04:00
tests.py Add the ability to specify ranges for SLO segments 2015-09-23 09:23:39 -07:00