[SERVER-40809] fix circular dependency between db/repl/oplog and db/transaction Created: 24/Apr/19  Updated: 29/Oct/23  Resolved: 25/Apr/19

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

Type: Improvement Priority: Minor - P4
Reporter: Benety Goh Assignee: Benety Goh
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by SERVER-40508 Move LocalOplogInfo into its own library Closed
Related
related to SERVER-56453 move LocalOplogInfo out of db/repl to... Closed
is related to SERVER-43978 Stable timestamp is not being recalcu... Closed
Backwards Compatibility: Fully Compatible
Sprint: Storage NYC 2019-05-06
Participants:
Linked BF Score: 0

 Description   

There's a circular dependency between the db/repl/oplog and db/transaction libraries that's currently addressed by the getNextOpTimes shim in db/repl/oplog_shim. This circular dependency can be addressed by moving the oplog  time reservation logic into its own library.



 Comments   
Comment by Githook User [ 25/Apr/19 ]

Author:

{'name': 'Benety Goh', 'username': 'benety', 'email': 'benety@mongodb.com'}

Message: SERVER-40809 unshim repl::getNextOpTimes()
Branch: master
https://github.com/mongodb/mongo/commit/252f84531a023b02cef56d79c1b498e1c4c9d096

Comment by Githook User [ 25/Apr/19 ]

Author:

{'email': 'benety@mongodb.com', 'name': 'Benety Goh', 'username': 'benety'}

Message: SERVER-40809 TransactionParticipant::OplogSlotReserver gets optimes from LocalOplogInfo
Branch: master
https://github.com/mongodb/mongo/commit/2cdcd89eee6cb4742cd2ded11ba91c2db910226c

Comment by Githook User [ 25/Apr/19 ]

Author:

{'name': 'Benety Goh', 'username': 'benety', 'email': 'benety@mongodb.com'}

Message: SERVER-40809 move LocalOplogInfo implementation out of oplog.cpp into its own library
Branch: master
https://github.com/mongodb/mongo/commit/7875e210aff618934a46165869a69f8530cf532d

Comment by Githook User [ 25/Apr/19 ]

Author:

{'email': 'benety@mongodb.com', 'name': 'Benety Goh', 'username': 'benety'}

Message: SERVER-40809 clean up LocalOplogInfo in oplog.cpp

remove persist argument from _getNextOpTimes()
add LocalOplogInfo::get()
move _getNextOpTimes() into LocalOplogInfo
make LocalOplogInfo::oplog and oplogName private and provide accessors/mutators
Branch: master
https://github.com/mongodb/mongo/commit/b9c656f6e2d0b0b7676927538ed7ac3278c23322

Comment by Githook User [ 25/Apr/19 ]

Author:

{'name': 'Benety Goh', 'username': 'benety', 'email': 'benety@mongodb.com'}

Message: SERVER-40809 remove unused function repl::getNextOpTimeNoPersistForTesting()

The last reference to this function was removed in commit da63637defad5975040f8eac0e98c86c8d8e2533.
Branch: master
https://github.com/mongodb/mongo/commit/3af89d081871eec0618f76903cb57bf727da8891

Comment by Githook User [ 24/Apr/19 ]

Author:

{'email': 'benety@mongodb.com', 'name': 'Benety Goh', 'username': 'benety'}

Message: Revert "SERVER-40809 clean up LocalOplogInfo in oplog.cpp"

This reverts commit dd01e3b6f14f52205ccb9ff738d712531665355b.
Branch: master
https://github.com/mongodb/mongo/commit/a663aa73d03b1f2f8c20b01490c1faf58d9afa1f

Comment by Githook User [ 24/Apr/19 ]

Author:

{'name': 'Benety Goh', 'username': 'benety', 'email': 'benety@mongodb.com'}

Message: SERVER-40809 clean up LocalOplogInfo in oplog.cpp

remove persist argument from _getNextOpTimes()
add LocalOplogInfo::get()
move _getNextOpTimes() into LocalOplogInfo
make LocalOplogInfo::oplog and oplogName private and provide accessors/mutators
Branch: master
https://github.com/mongodb/mongo/commit/dd01e3b6f14f52205ccb9ff738d712531665355b

Comment by Benety Goh [ 24/Apr/19 ]

Some overlap in scope with SERVER-40508 but not a complete duplicate.

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