[ https://issues.apache.org/jira/browse/IGNITE-18091?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Denis Chudov updated IGNITE-18091: ---------------------------------- Description: *Motivation* Today we have several possible implementations of deadlock prevention: AI 3 [1], transactions POC [2], and possible implementation based on concurrency control paper [3]. Moreover, we have a multiple granularity lock model [4] where some lock modes are compatible, others are not, which allows reenterability in some cases, and sharing of locks between transactions. We should understand the differences of behavior of each implementation in different scenarios, and how it matches with our expectations. *Definition of done* Table with a set of scenarios and description of behavior, including the expected one. [1] org.apache.ignite.internal.tx.impl.HeapLockManager [2] https://github.com/ascherbakoff/ai3-txn-mvp [3] https://dl.acm.org/doi/pdf/10.1145/320251.320260 [4] https://web.stanford.edu/class/cs245/readings/granularity-of-locks.pdf was: *Motivation* Today we have several possible implementations of deadlock prevention: AI 3 [1], transactions POC [2], and concurrency control paper [3]. Moreover, we have a multiple granularity lock model [4] where some lock modes are compatible, others are not, which allows reenterability in some cases, and sharing of locks between transactions. We should understand the differences of behavior of each implementation in different scenarios, and how it matches with our expectations. *Definition of done* Table with a set of scenarios and description of behavior, including the expected one. [1] org.apache.ignite.internal.tx.impl.HeapLockManager [2] https://github.com/ascherbakoff/ai3-txn-mvp [3] https://dl.acm.org/doi/pdf/10.1145/320251.320260 [4] https://web.stanford.edu/class/cs245/readings/granularity-of-locks.pdf > Compare deadlock prevention implementation and work out a decisions about > correct behavior in corner cases > ---------------------------------------------------------------------------------------------------------- > > Key: IGNITE-18091 > URL: https://issues.apache.org/jira/browse/IGNITE-18091 > Project: Ignite > Issue Type: Task > Reporter: Denis Chudov > Priority: Major > Labels: ignite-3 > > *Motivation* > Today we have several possible implementations of deadlock prevention: AI 3 > [1], transactions POC [2], and possible implementation based on concurrency > control paper [3]. Moreover, we have a multiple granularity lock model [4] > where some lock modes are compatible, others are not, which allows > reenterability in some cases, and sharing of locks between transactions. We > should understand the differences of behavior of each implementation in > different scenarios, and how it matches with our expectations. > *Definition of done* > Table with a set of scenarios and description of behavior, including the > expected one. > [1] org.apache.ignite.internal.tx.impl.HeapLockManager > [2] https://github.com/ascherbakoff/ai3-txn-mvp > [3] https://dl.acm.org/doi/pdf/10.1145/320251.320260 > [4] https://web.stanford.edu/class/cs245/readings/granularity-of-locks.pdf -- This message was sent by Atlassian Jira (v8.20.10#820010)