Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-4505

Add ability to manage when prepared transactions appear in checkpoints

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.1.7, WT3.2.0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • 8
    • Storage Engines 2018-12-31, Storage Engines 2019-01-14

      The scope is to implement the WiredTiger part 1 of the project oplog durablity:

      Part 1:

      1. Update the WT_UPDATE and WT_TXN structure to add a new member to store durable_timestamp.
      2. As part of commit transaction, copy the given commit_timestamp to durable_timestamp if it is a prepared transaction and durable_timestamp is not specified.
      3. Update __rec_txn_read function to check if the session is checkpoint session, if yes make the update visible only if durable_timestamp is earlier than given timestamp.
      4. Update the eviction to consider the update as uncommitted if durable_timestamp is less than stable_timestamp.
      5. Enforce durable_timestamp rules.
        1. For any prepared transaction, durable timestamp has to be specified.
        2. For any non-prepared transaction, if a durable timestamp is specified, it should be equal to commit_timestamp.
        3. A durable timestamp should be later than stable timestamp.
      6. Remove the constraint that a stable timestamp cannot pass past a prepared timestamp.

            vamsi.krishna@mongodb.com Vamsi Boyapati
            jocelyn.del-prado@mongodb.com Jocelyn del Prado
            0 Vote for this issue
            6 Start watching this issue