[SERVER-74301] Optimize serialization behavior for $changeStreamSplitLargeEvent Created: 23/Feb/23  Updated: 29/Oct/23  Resolved: 06/Apr/23

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 7.0.0-rc0, 6.0.7

Type: Task Priority: Major - P3
Reporter: Romans Kasperovics Assignee: Romans Kasperovics
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Backwards Compatibility: Fully Compatible
Backport Requested:
v6.0
Sprint: QE 2023-03-06, QE 2023-03-20, QE 2023-04-03, QE 2023-04-17
Participants:

 Description   
  • Allow 'BSONObj::LargeSizeTrait' to Document::toBsonWithMetadata() method.
  • Make Document::toBsonWithMetadata() and Document::fromBsonWithMetadata() use 'trivial' conversion. In other words, documents created with myDoc.fromBsonWithMetadata(otherDocument.toBsonWithMetadata()) and not modified afterwarrds should re-use the storage and not serialize again when myDoc.toBsonWithMetadata() is called.
  • Avoid unnecessary serializations in PlanExecutorPipeline and in change_stream_split_event::splitChangeEvent.


 Comments   
Comment by Githook User [ 11/Jul/23 ]

Author:

{'name': 'Serhii Lysenko', 'email': 'serhii.lysenko@mongodb.com', 'username': 'serhiitea'}

Message: SERVER-71828 Add $changeStreamSplitLargeEvent stage

This change is a part of PM-2677 backport.
It includes the following changes:

Comment by Githook User [ 22/Jun/23 ]

Author:

{'name': 'Serhii Lysenko', 'email': 'serhii.lysenko@mongodb.com', 'username': 'serhiitea'}

Message: SERVER-71825 Implement and test document split algorithm

This change is a part of PM-2677 backport.
It includes the following changes:

Comment by Githook User [ 15/Jun/23 ]

Author:

{'name': 'Romans Kasperovics', 'email': 'romans.kasperovics@mongodb.com', 'username': 'romanskas'}

Message: SERVER-74301 Optimize Document->BSON serialization

Track when document's metadata is changed to make better use of the
trivial Document->BSON conversion (when the underlying storage can be
returned unmodified), which saves time & memory.

This change is a part of PM-2677 backport.
Branch: v6.0
https://github.com/mongodb/mongo/commit/ca49097b6a9cdbaea662bf0ee5184ffac49c2ccf

Comment by Githook User [ 06/Apr/23 ]

Author:

{'name': 'Romans Kasperovics', 'email': 'romans.kasperovics@mongodb.com', 'username': 'romanskas'}

Message: SERVER-74301 Optimize serialization behavior for $changeStreamSplitLargeEvent
Branch: master
https://github.com/mongodb/mongo/commit/41ece0ab8e660dd2993141334ce10a189516bdb4

Comment by Bernard Gorman [ 26/Feb/23 ]

As part of this ticket, we should also audit PlanExecutorPipeline to make sure that we're not doing any unnecessary serialization for change stream events.

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