Update git submodules
* Update swift from branch 'master' to c7774d960c4186b166e95b1122b1652d090de64e - Merge "object-updater: defer ratelimited updates" - object-updater: defer ratelimited updates Previously, objects updates that could not be sent immediately due to per-container/bucket ratelimiting [1] would be skipped and re-tried during the next updater cycle. There could potentially be a period of time at the end of a cycle when the updater slept, having completed a sweep of the on-disk async pending files, despite having skipped updates during the cycle. Skipped updates would then be read from disk again during the next cycle. With this change the updater will defer skipped updates to an in-memory queue (up to a configurable maximum number) until the sweep of async pending files has completed, and then trickle out deferred updates until the cycle's interval expires. This increases the useful work done in the current cycle and reduces the amount of repeated disk IO during the next cycle. The deferrals queue is bounded in size and will evict least recently read updates in order to accept more recently read updates. This reduces the probablility that a deferred update has been made obsolete by newer on-disk async pending files while waiting in the deferrals queue. The deferrals queue is implemented as a collection of per-bucket queues so that updates can be drained from the queues in the order that buckets cease to be ratelimited. [1] Related-Change: Idef25cd6026b02c1b5c10a9816c8c6cbe505e7ed Co-Authored-By: Clay Gerrard <clay.gerrard@gmail.com> Co-Authored-By: Matthew Oliver <matt@oliver.net.au> Change-Id: I95e58df9f15c5f9d552b8f4c4989a474f52262f4
This commit is contained in:
parent
99ca2682e3
commit
a41cae26ee
2
swift
2
swift
@ -1 +1 @@
|
||||
Subproject commit 16a3067746ef7766a0ae7a9edf84a9557297422a
|
||||
Subproject commit c7774d960c4186b166e95b1122b1652d090de64e
|
Loading…
Reference in New Issue
Block a user