-
Notifications
You must be signed in to change notification settings - Fork 94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add sleep after update manifests to avoid sibling explosion #959
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).