[
https://issues.apache.org/jira/browse/IGNITE-23124?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vyacheslav Koptilin reassigned IGNITE-23124:
--------------------------------------------
Assignee: Denis Chudov
> Configurable deadlock prevention policies and retry count 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
>
> *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)