Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

** WORK IN PROGRESS **

A deadlock is a cycle of transactions waiting for locks to be released. A necessary condition for a deadlock happen is "Hold-and-Wait" situation. In other words, a transaction must wait for a lock while it is holding another lock. By definition of the record-level transaction in AsterixDB, a record is the only one resource to be locked during a transaction life-cycle. Based on the record-level transaction and given that there is no lock upgrade on any resource in any situation in AsterixDB, it is possible for a transaction to avoid the "Hold-and-Wait" situation. Therefore, deadlock-free locking protocol is achievable in AsterixDB

...