[SERVER-68323] Decompress BSONColumn one control block at a time Created: 26/Jul/22  Updated: 11/Dec/23

Status: Backlog
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Henrik Edin Assignee: Backlog - Storage Execution Team
Resolution: Unresolved Votes: 0
Labels: BSON
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Storage Execution
Participants:

 Description   

By decompressing one control block at a time in BSONColumn we can reduce the amount of state required in the BSONColumn::Iterator and perform the Simple8b unpacking in a tight(er) loop. This should improve the cache locality and be a performance improvement for the regular case.

Decompressing objects will be a little more complex as we will need to keep track of decompressed BSONElement per sub-stream and cannot build the returned BSONObj inplace.

But this tradeoff is most likely acceptable as we should optimize for the most common cases. This can also be a stepping stone towards partial Object decompression where queries are only interested in a subset of the streams.


Generated at Thu Feb 08 06:10:29 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.