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

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

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 0.5.0, 0.6.5, 0.7.0, 0.8.0-incubating, 0.9.0-incubating, 0.10.0-incubating
    • 0.11.0-incubating
    • core
    • 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

              poorna Poorna Chandra
              poorna Poorna Chandra
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: