[SERVER-49793] Keep track of active transactions in ephemeralForTest to compute the all durable timestamp Created: 22/Jul/20  Updated: 22/Jul/20  Resolved: 22/Jul/20

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

Type: New Feature Priority: Major - P3
Reporter: Gregory Wlodarek Assignee: Bynn Lee
Resolution: Won't Do Votes: 0
Labels: intern_ephemeral_for_test
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-48314 ephemeralForTest should support times... Closed
Related
related to SERVER-49792 Implement a snapshot manager for ephe... Closed
Sprint: Execution Team 2020-08-10
Participants:

 Description   

In order to compute the all durable timestamp for ephemeralForTest, we need to keep track of active transactions in ephemeralForTest. All transactions with timestamps earlier than the all durable timestamp are committed.

With this, we should be able to implement the kAllDurableSnapshot ReadSource in ephemeralForTest's RecoveryUnit.

 

Note: it's possible to commit new transactions earlier than the all durable timestamp but no earlier than the oldest timestamp. With that, we should prevent the all durable timestamp from going backwards.

Note 2: if SERVER-49792 is completed before this, then this ticket should also implement the kNoOverlap ReadSource in ephemeralForTest's RecoveryUnit. The no overlap timestamp is the minimum of the all durable and last applied timestamps.



 Comments   
Comment by Gregory Wlodarek [ 22/Jul/20 ]

Turns out the all durable timestamp for ephemeralForTest is already implemented via the visibility manager: https://github.com/mongodb/mongo/blob/86d94765b9030c9aa9adb3899277456e64bbd348/src/mongo/db/storage/ephemeral_for_test/ephemeral_for_test_kv_engine.h#L133-L136

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