[SERVER-63593] Support compressing arrays in BSONColumn Created: 11/Feb/22  Updated: 29/Oct/23  Resolved: 28/Mar/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 6.0.0-rc0

Type: New Feature Priority: Major - P3
Reporter: Henrik Edin Assignee: Henrik Edin
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-61625 Remove BSONColumn validation from Col... Closed
Documented
is documented by DOCS-15192 Investigate changes in SERVER-63593: ... Closed
Related
related to SERVER-65704 BSONColumn validation reads uninitial... Closed
related to SERVER-64732 [v5.0] BSONColumn decompression of in... Closed
related to SERVER-65263 Enable timeseriesBucketCompressionWit... Closed
Backwards Compatibility: Major Change
Sprint: Execution Team 2022-03-07, Execution Team 2022-03-21, Execution Team 2022-04-04
Participants:

 Description   

Add support for Arrays for the sub-object compression mode in BSONColumn.

Arrays can mostly be treated as Objects but care need to be taken so we don't merge in when the types are different.

Because there is existing data using this feature, we cannot use the existing control byte for sub-object mode start. An existing reference object with a sub-array need to not look for interleaved data for the array content.

Arrays can also exist at the root level and we need a separate control byte for interleave start as an array.

So:
Existing 0xF0 control byte need to decode as it currently does
Add new 0xF1 control byte for array support under objects
Add new 0xF2 control byte for array support when the root is an array



 Comments   
Comment by Githook User [ 23/Mar/22 ]

Author:

{'name': 'Henrik Edin', 'email': 'henrik.edin@mongodb.com', 'username': 'henrikedin'}

Message: SERVER-63593 Array compression support for BSONColumn

Two new control bytes are introduced. One for indicating array support and the other for array support with an array root object.

The decompressor handle both the new and the old format while the compressor selects implementation based on a new feature flag.
Branch: master
https://github.com/mongodb/mongo/commit/852c5d290fbe141a655501e5fefb23da4ed503c2

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