[SERVER-8046] Complete mutable bson abstraction / implementation Created: 28/Dec/12  Updated: 02/Aug/18  Resolved: 10/Jul/13

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

Type: Task Priority: Major - P3
Reporter: Alberto Lerner Assignee: Andrew Morrow (Inactive)
Resolution: Done Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-7174 Implement all update() operators Closed
is depended on by SERVER-7176 Audit and write final tests for updat... Closed
Participants:

 Description   

Updates need to use mutable in a few ways that are not fully implemented yet.

Here's what we're pending on:

+ Support for lazy reading: portion of the underlying bson would be "parsed" and parts would be "opaque"

+ Support for copying serialized portions in bulk: generating a new bson objs out of a mutated one should require re-encoding the entire object. Portion of the original object may be memcpy-ed to the destination object.

+ Support in-placeness: mutable can be "locked" for only in place ops and would generate a "damage vector" with write intent information.

+ Support for algs: find is already in place, sort is needed (e.g. in $push)

+ General clean up, since quite a few notions are being introduced.



 Comments   
Comment by auto [ 23/Jul/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Add a few more coverage driven tests to mutable
Branch: master
https://github.com/mongodb/mongo/commit/f9b40bf3ae57a0ee9301d70bf45c127a463563da

Comment by auto [ 10/Jul/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Account for field name NULL terminator when computing damage offsets
Branch: master
https://github.com/mongodb/mongo/commit/be456c97dae7bdb93382174ce55e4fea5f949092

Comment by auto [ 10/Jul/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Cleanup Element::writeArrayTo and add a test for the new implementation
Branch: master
https://github.com/mongodb/mongo/commit/2dd8b16ebbafd564fcd2967ec390da222dedc3c5

Comment by auto [ 10/Jul/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Validate values during type encoding tests
Branch: master
https://github.com/mongodb/mongo/commit/5623bbd54da40c28f876a516760836b29ab2441f

Comment by auto [ 10/Jul/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 A few additional coverage driven unit test updates
Branch: master
https://github.com/mongodb/mongo/commit/b2d128b328405df243e4835615822f895049d8f2

Comment by auto [ 10/Jul/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Remove some impossible error condition checks

If a node N has a parent, and you are trying to add a sibling to N, then N is already a child,
and therefore N's parent is provably not a leaf. Remove the redundant error checks for this
condition, but leave them as a dassert, at least for now.
Branch: master
https://github.com/mongodb/mongo/commit/2d0674bad139cf408403a61fcc6b246a3f8fdc32

Comment by auto [ 08/Jul/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Add support for in-place updates to mutable
Branch: master
https://github.com/mongodb/mongo/commit/a493a1a94fc159c175d144fab7a77e20bdf9e467

Comment by auto [ 06/Jul/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Additional unit tests based on gcov coverage results

This revealed a long latent defect with injecting a new left sibling
in the middle of the sibling chain, which has been fixed.
Branch: master
https://github.com/mongodb/mongo/commit/bdf9a87b13e3ed0816746b462b9feef1742cbdb9

Comment by auto [ 31/May/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Add support for cloning elements to mutable
Branch: master
https://github.com/mongodb/mongo/commit/88b66393ce61f1bf7bbc33064349501f39d02266

Comment by Eric Milkie [ 31/May/13 ]

This appears to have broken a unit test:
http://buildlogs.mongodb.org/Linux%2064-bit%20debug%20dur%20off/builds/2346/test/core/mutable_bson_test

Comment by auto [ 31/May/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Don't penalize debug build performance so heavily
Branch: master
https://github.com/mongodb/mongo/commit/9a8ffdd8fbc035db418c285b36b3a32b87f3fb63

Comment by auto [ 31/May/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Avoid redundant traversals when finding the right child
Branch: master
https://github.com/mongodb/mongo/commit/e52de4130cf076cfb18178e9ce5e117b3553d9ed

Comment by auto [ 31/May/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Don't prohibit clang from using an unnamed namespace
Branch: master
https://github.com/mongodb/mongo/commit/2dfcfdf52ff8074f85f3a3a91a6f48ac2545dc5d

Comment by auto [ 31/May/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Add debug assertions to catch aliasing violations
Branch: master
https://github.com/mongodb/mongo/commit/49549b8e8650346540063b9c5b61b020d2021e24

Comment by auto [ 31/May/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Add utilities to simplify debugging and testing with mutable
Branch: master
https://github.com/mongodb/mongo/commit/29f747605154a4855ce76d21cd5ecbc2fa3890a0

Comment by auto [ 24/May/13 ]

Author:

{u'username': u'acmorrow', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Copy field names before potentially invalidating them
Branch: master
https://github.com/mongodb/mongo/commit/8d62e8af5a55abad7ef7849beaa2f6b5bfa3e8f7

Comment by auto [ 09/May/13 ]

Author:

{u'date': u'2013-05-08T21:48:39Z', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Fix handling of array field names in mutable's woCompare
Branch: master
https://github.com/mongodb/mongo/commit/aabd44b8d65f7da5cff8362fbb1c1d6ecf869cbf

Comment by auto [ 07/May/13 ]

Author:

{u'date': u'2013-05-07T16:31:14Z', u'name': u'Alberto Lerner', u'email': u'alerner@10gen.com'}

Message: SERVER-8046 Fixed missed appendElement call implementation.
Branch: master
https://github.com/mongodb/mongo/commit/6932776c728f65860c88813626efe94513fbf83b

Comment by auto [ 08/Apr/13 ]

Author:

{u'date': u'2013-04-05T20:59:30Z', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Add a new hasChildren method is faster than counting
Branch: master
https://github.com/mongodb/mongo/commit/f6b0d41bc6f230822e611ce8b3cfaffc02e44a69

Comment by auto [ 08/Apr/13 ]

Author:

{u'date': u'2013-04-05T20:32:42Z', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Add an easy way to get an invalid element for a doc
Branch: master
https://github.com/mongodb/mongo/commit/da0559f544928c3b56fc3f02cabb912e8c45343f

Comment by auto [ 08/Apr/13 ]

Author:

{u'date': u'2013-04-05T18:42:28Z', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Some additional mutable tests
Branch: master
https://github.com/mongodb/mongo/commit/6a0cdd1825fc033c65bd12dcb556fb9a865ff31f

Comment by auto [ 29/Mar/13 ]

Author:

{u'date': u'2013-03-28T16:07:28Z', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Fix some rep invalidation issues in mutable bson
Branch: master
https://github.com/mongodb/mongo/commit/cc155a6fb38cb8509047e772187f23bd44bb7cb4

Comment by auto [ 29/Mar/13 ]

Author:

{u'date': u'2013-03-27T18:51:21Z', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 re-order tests after merge
Branch: master
https://github.com/mongodb/mongo/commit/d24a34fccf2399cc89dc0b159739754b8a62ba27

Comment by auto [ 27/Mar/13 ]

Author:

{u'date': u'2013-03-26T19:32:03Z', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Fix broken mutable bson algorithm
Branch: master
https://github.com/mongodb/mongo/commit/45bedc3c887794a25dc74325fecaa654ea160506

Comment by Kevin J. Rice [ 15/Mar/13 ]

Possibly related case: https://jira.mongodb.org/browse/CS-6195 "Ability to $appendBytes to a BSON element"

Comment by auto [ 08/Mar/13 ]

Author:

{u'date': u'2012-12-05T00:19:44Z', u'name': u'Andrew Morrow', u'email': u'acm@10gen.com'}

Message: SERVER-8046 Implement lazyness for mutable BSON
Branch: master
https://github.com/mongodb/mongo/commit/05eddb24d1a1c4c2ebada12a7beab97a82d7f7d6

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