Description
Currently the pick the disks are picked first by number of current tasks, then by free space. This helps with performance but can lead to large differences in utilization in some (unlikely but possible) scenarios. Ive seen 55% to 10% and heard reports of 90% to 10% on IRC. With both LCS and STCS (although my suspicion is that STCS makes it worse since harder to be balanced).
I purpose the algorithm change a little to have some maximum range of utilization where it will pick by free space over load (acknowledging it can be slower). So if a disk A is 30% full and disk B is 5% full it will never pick A over B until it balances out.
Attachments
Attachments
Issue Links
- breaks
-
CASSANDRA-8716 "java.util.concurrent.ExecutionException: java.lang.AssertionError: Memory was freed" when running cleanup
- Resolved
- is duplicated by
-
CASSANDRA-7615 Data isn't written to the disk with enough space while using multiple data_file_directories
- Resolved
-
CASSANDRA-8571 Free space management does not work very well
- Resolved
- is related to
-
CASSANDRA-8329 LeveledCompactionStrategy should split large files across data directories when compacting
- Resolved
- links to