[SERVER-65481] Add efficient bulk builder for column indexes Created: 12/Apr/22 Updated: 29/Oct/23 Resolved: 08/Jul/22 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 6.1.0-rc0 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Ian Boros | Assignee: | Justin Seyster |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||
| Sprint: | QE 2022-05-16, QE 2022-05-30, QE 2022-06-13, QE 2022-06-27, QE 2022-07-11, QE 2022-07-25 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Linked BF Score: | 151 | ||||||||||||||||
| Description |
|
When bulk building column indexes we can take advantage of the fact that a collection scan produces results in RID order. (We should confirm this with the storage exec team) As we walk the collection, we maintain a table from (path -> [list of cells ordered by RID]). For each document we take out of the collection, we produce all of the cells for it, and append them to the corresponding list. At the end, we sort by the path (the key of our table) and then insert each list into the index. This avoids doing a blocking sort over the entire set of keys. |
| Comments |
| Comment by Githook User [ 08/Jul/22 ] |
|
Author: {'name': 'Justin Seyster', 'email': 'justin.seyster@mongodb.com', 'username': 'jseyster'}Message: |
| Comment by Githook User [ 30/Jun/22 ] |
|
Author: {'name': 'Sviatlana Zuiko', 'email': 'sviatlana.zuiko@mongodb.com', 'username': 'szuiko'}Message: Revert " This reverts commit cb9472afc30d32d1c18691d64899c1aa72cdc43d. |
| Comment by Githook User [ 29/Jun/22 ] |
|
Author: {'name': 'Justin Seyster', 'email': 'justin.seyster@mongodb.com', 'username': 'jseyster'}Message: |