-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Parallelize vertical compactions inside a single group #5936
Commits on Dec 1, 2022
-
Parallelize vertical compactions
The current compaction implementation allocates one goroutine per compaction stream. This means that compaction can run as fast as the slowest stream. As a result, as soon as one stream starts to fall behind, the all other streams can become affected. In addition, despite setting a high compact-concurrency, CPU utilization can still be low because of the one-goroutine-per-stream limit. The compaction algorithm also prioritizes vertical compactions over horizontal ones. As soon as it detects any overlapping blocks, it will compact those blocks and reevaluate the plan in a subsequent iteration. This commit enables parallel execution of vertical compactions within a single compaction stream. It does that by first changing the Planner interface to allow it to return multiple compaction tasks per group instead of a single one. It also adapts the algorithm for detecting overlapping blocks to be able to detect multiple independent groups. These groups are then returned as distinct compaction tasks and the compactor can execute them in separate goroutines. By modifying the planner interface, this commit also enables parallelizing horizontal compactions in the future. Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 912172b - Browse repository at this point
Copy the full SHA 912172bView commit details
Commits on Dec 2, 2022
-
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for d71c4d1 - Browse repository at this point
Copy the full SHA d71c4d1View commit details -
Use errutil.MultiError instead of cortex MultiError
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for c911229 - Browse repository at this point
Copy the full SHA c911229View commit details -
Add test case for progress calculator
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for afe27df - Browse repository at this point
Copy the full SHA afe27dfView commit details -
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 321efdc - Browse repository at this point
Copy the full SHA 321efdcView commit details -
Iterate through all errors for a compaction group
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 31885e1 - Browse repository at this point
Copy the full SHA 31885e1View commit details -
Add test case for large index size
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 86af2a8 - Browse repository at this point
Copy the full SHA 86af2a8View commit details
Commits on Dec 3, 2022
-
Parametrize concurrency inside single group
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 1248a96 - Browse repository at this point
Copy the full SHA 1248a96View commit details -
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 09bdb1a - Browse repository at this point
Copy the full SHA 09bdb1aView commit details
Commits on Dec 4, 2022
-
Limit concurrency of tasks to global concurrency
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for b58d2bf - Browse repository at this point
Copy the full SHA b58d2bfView commit details -
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for c804045 - Browse repository at this point
Copy the full SHA c804045View commit details -
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for d754370 - Browse repository at this point
Copy the full SHA d754370View commit details -
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 24fd336 - Browse repository at this point
Copy the full SHA 24fd336View commit details -
Adjust e2e tests to not account for empty planning cycles
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for a808840 - Browse repository at this point
Copy the full SHA a808840View commit details -
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 7c6dba5 - Browse repository at this point
Copy the full SHA 7c6dba5View commit details
Commits on Dec 7, 2022
-
Automatically infer group concurrency
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for a7d4a7b - Browse repository at this point
Copy the full SHA a7d4a7bView commit details -
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for f476edb - Browse repository at this point
Copy the full SHA f476edbView commit details -
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 2662961 - Browse repository at this point
Copy the full SHA 2662961View commit details -
Distribute tasks in round-robin manner
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 407e98a - Browse repository at this point
Copy the full SHA 407e98aView commit details -
Add e2e test for parallel compaction
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 25705dc - Browse repository at this point
Copy the full SHA 25705dcView commit details -
Plan at least one task from each group
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for e3e94c6 - Browse repository at this point
Copy the full SHA e3e94c6View commit details
Commits on Dec 12, 2022
-
Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for ea766ad - Browse repository at this point
Copy the full SHA ea766adView commit details