-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Storage Execution
-
Storage Execution 2026-10-26
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Given a range between minRecordId and maxRecordId, and a number of partitions N, aka Degree of Parallelism (DOP), returns a sorted vector of unique RecordIds that partition the range, with the array size <= N -1. (Question for alberto.massari@mongodb.com : or would you prefer N + 1 entries, with the first and last RecordId returned as well?)
The bounds are optional: a missing lower bound means the beginning of a collection, and a missing upper bound means the end of a collection.
The implementation will make use of WiredTiger's new get_/set_position API (WT-18982). The boundaries returned from WT are not guaranteed to be sorted (when the tree is modified) or unique (the granularity is page level and if the tree is too small the boundaries can collapse), so we need to sort and deduplicate before returning to caller.
The WT API currently only supports setting a position relative to the entire tree. Unless they provide us with an optimal bounded version, we will need to seek to the bounds, get their positions, and then derive the partition boundaries' positions.
- blocks
-
SERVER-135504 Integrate StorEx work for partitioning of collections
-
- Needs Scheduling
-
- depends on
-
WT-18982 Implement cursor get/set position
-
- Needs Scheduling
-