container-sync should use HTTP pipelining

Bug #1068425 reported by Faidon Liambotis
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
OpenStack Object Storage (swift)
Invalid
Wishlist
Unassigned

Bug Description

The container sync processes opens a new HTTP connection, syncs an object and then tears it down for *every object*. This is hugely inefficient and while it may work with small containers, it's impossible to work with for large containers, especially if the remote cluster is multiple ms RTT apart.

A way to solve this would be to use a custom protocol to do multiple operations in a single HTTP request, instead of naively behaving as a client to the remote proxy.

This is obviously a large architectural change, but in the meantime, a large portion of the ineffiency can be alleviated by using HTTP pipelining and keeping the same connection open slow-started and everything. Even better, you could have a pool of such connections and transfer multiple objects at the same time.

Chuck Thier (cthier)
Changed in swift:
importance: Undecided → Wishlist
Chuck Thier (cthier)
Changed in swift:
status: New → Triaged
Changed in swift:
assignee: nobody → David Hadas (david-hadas)
Revision history for this message
John Dickinson (notmyname) wrote :

marking this as invalid because of age. It's true that container sync should be "better", but there's a lot that's happened in swift over the pas 2 years since this was filed that we can learn from (like the container reconciler).

Changed in swift:
status: Triaged → Invalid
assignee: David Hadas (david-hadas) → nobody
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.