[ 
https://issues.apache.org/jira/browse/IGNITE-23124?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Denis Chudov updated IGNITE-23124:
----------------------------------
    Summary: Configurable deadlock prevention policies and retry interval after 
LockException  (was: Configurable deadlock prevention policies and retry count 
after LockException)

> Configurable deadlock prevention policies and retry interval after 
> LockException
> --------------------------------------------------------------------------------
>
>                 Key: IGNITE-23124
>                 URL: https://issues.apache.org/jira/browse/IGNITE-23124
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Denis Chudov
>            Assignee: Denis Chudov
>            Priority: Major
>              Labels: ignite-3
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> *Motivation*
> Currently WaitDieDeadlockPreventionPolicy is used in AI3 along with retries 
> of transactional operation in case of lock conflict. This approach provides 
> better throughput (because of no waits) but worsens the latency. Different 
> approaches (server side waiting, like timeout-wait deadlock prevention) can 
> have a positive effect on latency but decrease throughput. We should provide 
> the ability to configure per-transaction this depending on workload.
> See benchmark results in IGNITE-22286.
> *Implementation notes*
> All the fields ought to be defined in TransactionConfigurationSchema.
> * _attemptsInterval_ (default 10) is the time in milliseconds after which the 
> next attempt to attempt lock will do. Currently, it is defined in constant 
> (ReplicaService#RETRY_TIMEOUT_MILLIS).
> * _deadlockPreventionPolicy_ (default WaitDieDeadlockPreventionPolicy) is a 
> policy to prevent dadlock in case of lock conflict. The policy has to be 
> passed through the constructor of HeapLockManager. Polymorphic configuration 
> should be used.
> * The wait-die policy with timeout; the timeout also has to be available for 
> configuration.
> *Definition of done*
> TransactionOptions are enriched with deadlock prevention policy (at least, 
> WaitDieDeadlockPreventionPolicy and TimeoutWaitDeadlockPreventionPolicy with 
> configurable waiting time) and retry count.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to