Add sleep after update manifests to avoid sibling explosion#959
Add sleep after update manifests to avoid sibling explosion#959borshop merged 2 commits intorelease/1.5from
Conversation
90b6e73 to
075af4f
Compare
|
Did some measurement. Details are in [1] and [2] Setup:
Summary:
[1] https://gist.github.com/shino/2c4079d4e489ccd57ab2 |
|
Extended max sleep interval at f3cbbd9, updated the description of this PR. |
|
Note that s3gof3r by default has 5 sec retry, which leads to sibling explosion anyway. This patch expects ther clients will retry within longer interval, say, > 30~60 sec. There is a tradeoff between number of concurrent part uploads, its retry interval. Choose carefully the knobs listed above. |
Add sleep after update manifests to avoid sibling explosion Reviewed-by: kuenishi
|
@borshop merge |
|
Memo to self: To disable the backpressure sleep completely: |
Another candidate solution #882 of based on the @kuenishi 's idea (see also #905).
Idea is simple:
sleep some interval after get-modify-update manifests depending on #(siblings)
knobs
manifest_siblings_bp_threashold(default 5)threshold to trigger backpressure by sleep
manifest_siblings_bp_coefficient(default 200 [msec])Coefficient of sleep interval, which is
manifest_siblings_bp_coefficient * #(siblings)manifest_siblings_bp_max_sleep(default 30*1000 [msec] = 30sec)Max sleep interval. Mean sleep interval is determined by minimum of this value and the above.
Actual sleep interval is uniformly randomized between
(0.5 * mean sleep interval, 1.5 * mean sleep interval).