Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-10219

MVCC: TX: Backup node update may fail after lost tx rollback.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.8
    • mvcc

    Description

      The use case:

      1. Start Tx and update entry.
      2. Kill backup.
      3. Rollback Tx (backup miss this tx state change due to outage)
      4. Start backup.
      5. Update same entry may fails with unknown tx state for latest entry version.

      Backup won't rebalance partition for the key as rollback doesn't increment partition counter and can't found active transaction for latest entry version as TxLog contains neither commit nor rollback record.

      Also Tx can't be detected as rolled back as mvcc coordinator version hasn't changed during backup node outage.

       

      Possible solutions are

      1. Increment mvcc coordinator version on every node join event that need to be carefully tested.
      2. Scan cache to cleanup such entries on node startup (right after recovery from WAL) which is inefficient.
      3. Or may be log Tx start in TxLog and rollback all active Tx on node startup.

      Attachments

        1. CacheMvccTxFailoverTest.java
          5 kB
          Andrey Mashenkov

        Issue Links

          Activity

            People

              amashenkov Andrey Mashenkov
              amashenkov Andrey Mashenkov
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m