-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Sharding
-
Fully Compatible
-
Sharding EMEA 2021-07-26, Sharding EMEA 2021-08-09, Sharding EMEA 2021-08-23, Sharding EMEA 2021-09-06
-
(copied to CRM)
The chunk splitter is currently relying on the splitVector function that can easily suggest to always split at a chunk at (maxChunkSize / 2).
While the documentation states that a chunk gets partitioned when it reaches the maximum chunk size, the current implementation can force a split simply if the current size is (maxChunkSize / 2 + ε). This results in the max chunk size being actually (maxChunkSize / 2).
Not only that, some corner cases can produce very large chunk counts relative to document count.
This ticket has two objectives to make the auto-splitter less aggressive:
- As a precondition for splitting, wait for a chunk size to get closer to the maximum
- Consider making bigger chunks, with a size closer to the maxChunkSize set by the user rather than half of it
- depends on
-
SERVER-58650 Extract splitVector logic for the auto splitter into a new function
- Closed
-
SERVER-58664 Simplify and comment autoSplitVector
- Closed
- is duplicated by
-
SERVER-52886 Sharded cluster is balancing a lot and creating a lot of very small chunks
- Closed
- is related to
-
SERVER-60009 Increase auto splitted chunks size
- Closed