Add JS test for secondary stepping up to primary after preparing transactions under different batching scenarios

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Won't Do
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Replication
    • Repl 2023-04-17
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      The purpose of this tests is to ensure that after secondary applies a batch of split prepared transactions and steps up, the transactions are in the correct state and we can successfully commit them as primary.

      There are different batching scenarios to consider, for example:

      • batch 1: [ prepare(sess1, txnNumber1), prepare(sess2, txnNumber 2) ]
      • batch 1: [ prepare(sess1, txnNumber1) ]; batch 2: [ commit(sess1, txnNumber1), prepare(sess1, txnNumber2), prepare(sess2, txnNumber1) ]
      • batch 1: [ prepare(sess1, txnNumber1), commit(sess1, txnNumber1), prepare(sess1, txnNumber2) ]  (Note: Usually a commit of a transaction will not be in the same batch of the prepare of the same transaction because the prepare oplog has to be majority committed first before transactionCoordinator issues commit to participants. But for secondaries in minority of the replica set, this can happen)

      EDIT: since we are not batching commits with prepares any more, we have just a few scenarios to consider.

            Assignee:
            Wenbin Zhu
            Reporter:
            Wenbin Zhu
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: