Uploaded image for project: 'Tephra'
  1. Tephra
  2. TEPHRA-223

Transactions started after a snapshot restore can have incorrect invalid transaction list

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.5.0, 0.6.5, 0.7.0, 0.8.0-incubating, 0.9.0-incubating, 0.10.0-incubating
    • Fix Version/s: 0.11.0-incubating
    • Component/s: core
    • Labels:
      None

      Description

      Transaction Manager uses two datastructures to manage the invalid list - a List and an array. All updates to invalid list happen to the List, and the list is then sorted and copied over to the array. This is an optimization done so as to not sort the invalid list every time a new transaction is created.

      However during a snapshot restore after the Transaction Manager starts up, the invalid list gets correctly restored to the List but does not get copied over to the array. This will lead to transactions started right after a snapshot restore to have empty invalid list. This will make invalid data to become visible to those transactions.

      Since the List still contains the right invalid list, any update to the invalid list - like invalidating a transaction, will restore the array back to a good state.

      Also compactions will still remove invalid data as expected since new snapshots are searialized using the List

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                poornachandra Poorna Chandra
                Reporter:
                poornachandra Poorna Chandra
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: