mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-29 11:10:40 +00:00
We have found issues when a flush is requested outside the usual memtable flush loop and because there is not a lot of data the controller will not have a high amount of shares. To prevent this, this patch guarantees some minimum amount of shares when extraneous operations (nodetool flush, commitlog-driven flush, etc) are requested. Another option would be to add shares instead of guarantee a minimum. But in my view the approach I am taking here has two main advantages: 1) It won't cause spikes when those operations are requested 2) It is cumbersome to add shares in the current infrastructure, as just adding backlog can cause shares to spike. Consider this example: Backlog is within the first range of very low backlog (~0.2). Shares for this would be around ~20. If we want to add 200 shares, that is equivalent to a backlog of 0.8. Once we add those two backlogs together, we end up with 1 (max backlog). Fixes #3761 Tests: unit (release) Signed-off-by: Glauber Costa <glauber@scylladb.com> Message-Id: <20180927131904.8826-1-glauber@scylladb.com>
226 KiB
226 KiB