[SERVER-59830] Share BSONColumn across BucketUnpackers in TrialStage Created: 08/Sep/21  Updated: 06/Dec/22  Resolved: 08/Sep/21

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

Type: Task Priority: Major - P3
Reporter: Eric Cox (Inactive) Assignee: Backlog - Query Execution
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Query Execution
Participants:

 Description   

SERVER-58579 refactored the BucketUnpacker to use an `UnpackerImpl` interface to support a new `BSONColumn` type to support compression of time series columns. When SERVER-58579 landed it wasn't clear how we can best share the bucketUnpacker in both branches of the TrialStage,

https://github.com/10gen/mongo/pull/426#discussion_r697471248

While the work done in each TrialStage might be a little different, if they share the same `BSONColumn` then any bucket that has been previously unpacked and hence uncompressed will be cached and should give a perf gain. We should see how we can best share the `BSONColumn` across multiple BucketUnapckers.



 Comments   
Comment by Eric Cox (Inactive) [ 08/Sep/21 ]

Since the BucketUnpackers in each branch will see different buckets due to the randomness in SampleFromTimeseries and the backup branch will be scanning the buckets, it turns out that this won't benefit from sharing a BSONColumn. The only time we should consider sharing BSONColumns is if we see the same buckets in each BucketUnpacker in lock-step. This isn't the case here so I'm closing this ticket.

cc: henrik.edin

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