[SERVER-28903] Implement transactions documents persistence Created: 21/Apr/17  Updated: 30/Oct/23  Resolved: 06/Jul/17

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

Type: Task Priority: Major - P3
Reporter: Kaloian Manassiev Assignee: Randolph Tan
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Backwards Compatibility: Fully Compatible
Sprint: Sharding 2017-05-29, Sharding 2017-07-31
Participants:
Linked BF Score: 0

 Description   

This task is about implementing an API to initialize and write entries in the admin.system.transactions collection, according to the guidelines in the design.

As part of this task we need to figure out:

  • What the API should look like, its concurrency rules (i.e., what locks need to be held, where are the write unit of work boundaries, etc)
  • How to best capture the write outcome information and put it in the transactions document (this includes the n, nModified, etc statistics which are generated at a location, which is outside of the oplog generation)
  • Whether some form of caching is necessary

It does not include preventing replication of the admin.system.transactions collection, which is covered by SERVER-28902.

Update:
New design will be such that the transactions document will not store the write results, but a pointer to the oplog entry of the last write. In addition, the oplog entries will now have a prevTs field that will link to the previous write in the same transaction. By following the chain of oplog entries, it is possible to determine which writes happened as well as the results for them



 Comments   
Comment by Githook User [ 06/Jul/17 ]

Author:

{u'username': u'renctan', u'name': u'Randolph Tan', u'email': u'randolph@10gen.com'}

Message: SERVER-28903 Fix clang link failure
Branch: master
https://github.com/mongodb/mongo/commit/18929c5f6887d5bf49b163c0ee13f158f91f7ec8

Comment by Githook User [ 06/Jul/17 ]

Author:

{u'username': u'renctan', u'name': u'Randolph Tan', u'email': u'randolph@10gen.com'}

Message: SERVER-28903 Implement session history iterator
Branch: master
https://github.com/mongodb/mongo/commit/fa8c900800a61cd399554f27d43ca58870a95187

Comment by Githook User [ 03/Jul/17 ]

Author:

{u'username': u'renctan', u'name': u'Randolph Tan', u'email': u'randolph@10gen.com'}

Message: SERVER-28903 Implement session transaction record inserts/updates
Branch: master
https://github.com/mongodb/mongo/commit/fc022697a81eb576c7813449739c507f8998a967

Comment by Githook User [ 03/Jul/17 ]

Author:

{u'username': u'renctan', u'name': u'Randolph Tan', u'email': u'randolph@10gen.com'}

Message: SERVER-28903 Make Transaction state store last write optime instead of write results
Branch: master
https://github.com/mongodb/mongo/commit/daf92c6fa479f51b1a1d18cacf56b0a1bbeba9fb

Comment by Githook User [ 23/Jun/17 ]

Author:

{u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}

Message: SERVER-28903 Fix bad include for std::unordered_map
Branch: master
https://github.com/mongodb/mongo/commit/614c7e06924d2b490c4ad4e8916b2b7db610b7da

Comment by Githook User [ 23/Jun/17 ]

Author:

{u'username': u'renctan', u'name': u'Randolph Tan', u'email': u'randolph@10gen.com'}

Message: SERVER-28903 Session Transaction State and Table skeleton code
Branch: master
https://github.com/mongodb/mongo/commit/a02c5e1cf53e83de05d3c98ed38673d91a350ce0

Comment by Githook User [ 19/Jun/17 ]

Author:

{u'username': u'renctan', u'name': u'Randolph Tan', u'email': u'randolph@10gen.com'}

Message: SERVER-28903 Convert WriteResult::SingleResult to idl
Branch: master
https://github.com/mongodb/mongo/commit/93792040144f9c6197899627290b641073c549c4

Generated at Thu Feb 08 04:19:23 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.