[ https://issues.apache.org/jira/browse/IGNITE-18043?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vladislav Pyatkov updated IGNITE-18043: --------------------------------------- Description: *Motivation:* We have an embedded deadlock prevention strategy (presently, it is _Wait-Die_). Although, [the original paper|https://people.eecs.berkeley.edu/~brewer/cs262/concurrency-distributed-databases.pdf] about deadlock prevention contains another two strategies: _priorities_ and _Wound-Wait_. Also, the mechanism should give a possibility to not use any strategy to prevent deadlock. All told, above shows we need to separate the prevention strategy in dedicate interface (which even has one implementation _Wait-Die_). Another implementation will be released by necessary. *Definition of Done:* A deadlock resolution strategy (_ResolutionStrategy_) has to be extracted to interface, which parametrizes _LockManager_. Wait-Die strategy (_WaitDieLockResolutionStrategy_) will be the only one implementation of _ResolutionStrategy_. _HeapLockManager_ should be parametrized by _WaitDieLockResolutionStrategy_. was: We have an embedded deadlock prevention strategy (presently, it is _Wait-Die_). Although, [the original paper|https://people.eecs.berkeley.edu/~brewer/cs262/concurrency-distributed-databases.pdf] about deadlock prevention contains another two strategies: _priorities_ and _Wound-Wait_. Also, the mechanism should give a possibility to not use any strategy to prevent deadlock. All told, above shows we need to separate the prevention strategy in dedicate interface (which even has one implementation _Wait-Die_). Another implementation will be released by necessary. > Replaceable deadlock prevention mechanism > ----------------------------------------- > > Key: IGNITE-18043 > URL: https://issues.apache.org/jira/browse/IGNITE-18043 > Project: Ignite > Issue Type: Improvement > Reporter: Vladislav Pyatkov > Priority: Major > Labels: ignite-3 > > *Motivation:* > We have an embedded deadlock prevention strategy (presently, it is > _Wait-Die_). Although, [the original > paper|https://people.eecs.berkeley.edu/~brewer/cs262/concurrency-distributed-databases.pdf] > about deadlock prevention contains another two strategies: _priorities_ and > _Wound-Wait_. Also, the mechanism should give a possibility to not use any > strategy to prevent deadlock. > All told, above shows we need to separate the prevention strategy in dedicate > interface (which even has one implementation _Wait-Die_). Another > implementation will be released by necessary. > *Definition of Done:* > A deadlock resolution strategy (_ResolutionStrategy_) has to be extracted to > interface, which parametrizes _LockManager_. Wait-Die strategy > (_WaitDieLockResolutionStrategy_) will be the only one implementation of > _ResolutionStrategy_. > _HeapLockManager_ should be parametrized by _WaitDieLockResolutionStrategy_. -- This message was sent by Atlassian Jira (v8.20.10#820010)