Details
-
Improvement
-
Resolution: Unresolved
-
Major - P3
-
None
-
None
-
None
-
Storage Execution
-
Execution Team 2024-01-08, Execution Team 2024-01-22, Execution Team 2024-02-05, Repl 2024-02-19
Description
During analysis of SERVER-676 we identified that stable_sort as used in the sorter can be replaced with a normal sort. This would relax requirements imposed on the sorting and use a potentially different algorithm.
Additionally, we found that the NoLimit sorter uses a deque instead of a normal vector with a reserved capacity that would offer better memory locality.
A rough patch that implemented the changes mentioned here yielded a very significant improvement in index builds.
Attachments
Issue Links
- depends on
-
SERVER-85337 $bucketAuto $first does not obey input order
-
- In Code Review
-
-
SERVER-85424 $group relies on stable sorting
-
- Closed
-
-
SERVER-85510 Fix checkpoint jstests to not depend on document order
-
- Closed
-
- is related to
-
SERVER-85337 $bucketAuto $first does not obey input order
-
- In Code Review
-
-
DOCS-9994 Unique field must be included to ensure sort order stability across multiple queries
-
- Closed
-
-
SERVER-676 use multiple cores for index sort-phase
-
- Closed
-
- related to
-
SERVER-84523 Reconsider deque in sorter.cpp
-
- Closed
-