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

Implement MVCC support to avoid excessive locking

    XMLWordPrintableJSON

Details

    • Task
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • None
    • None
    • None

    Description

      We need to implement MVCC support to avoid locking and resulting conflicts, causing aborted transactions.

      Generally, the idea is to use monotonic timestamps to globally order the transactions and write multiple versions for lockless reads.

      See [0][1][2] for decentralized timestamp generation techniques,  [3]for MVCC analysis, [4] for MVCC essentials.

      Also, this technique can be used for atomic metadata updates, as described in the 4.2.3 Schema-Change Transactions of [5] 

      [0] https://dl.acm.org/doi/pdf/10.1145/3299869.3314049

      [1] http://users.ece.utexas.edu/~garg/pdslab/david/hybrid-time-tech-report-01.pdf

      [2] https://www.usenix.org/system/files/nsdi21-wei.pdf

      [3] http://www.vldb.org/pvldb/vol10/p781-Wu.pdf

      [4] https://www.researchgate.net/publication/200030091_Concurrency_Control_in_Distributed_Database_Systems

      [5] https://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ascherbakov Alexey Scherbakov
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: