[ 
https://issues.apache.org/jira/browse/IGNITE-22286?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17878850#comment-17878850
 ] 

Denis Chudov commented on IGNITE-22286:
---------------------------------------

On this scenario results are different and retries show better throughput and 
latency.

100 accounts, money is transferred from one account to another randomly in each 
transaction (2 gets, 2 upserts per transaction):
{code:java}
+------------------------------------+-------------+------------------+----------------+----------------------+-------------------------+
|          Configuration             | total txns  | rolled back txns | rolled 
back, % | average get duration | average upsert duration |
+------------------------------------+-------------+------------------+----------------+----------------------+-------------------------+
| Timeout wait,      1 node, 2 cores |    2776     |        99        |      
3.6%      |       3.779460       |        11.848301        |
| Timeout wait,      3 nodes, 2 cores|    2206     |        72        |      
3.3%      |       3.876897       |        13.024651        |
| Timeout wait,      1 node, 8 cores |    3374     |       260        |      
7.7%      |       11.460481      |        18.459695        |
| Timeout wait,      3 nodes, 8 cores|    3144     |       252        |      
8.0%      |       10.896002      |        19.587510        |
| WaitDie + retries, 1 node, 2 cores |    5882     |       109        |      
1.9%      |       1.210868       |        7.957916         |
| WaitDie + retries, 3 nodes, 2 cores|    3717     |       126        |      
3.4%      |       2.403865       |        6.673273         |
| WaitDie + retries, 1 node, 8 cores |   18970     |      1123        |      
5.9%      |       1.431751       |        5.046949         |
| WaitDie + retries, 3 nodes, 8 cores|   10845     |       797        |      
7.4%      |       2.040012       |        8.359724         |
+------------------------------------+-------------+------------------+----------------+----------------------+-------------------------+
 {code}
 

> Remove waitTimeout in deadlock prevention policy
> ------------------------------------------------
>
>                 Key: IGNITE-22286
>                 URL: https://issues.apache.org/jira/browse/IGNITE-22286
>             Project: Ignite
>          Issue Type: Improvement
>    Affects Versions: 3.0.0-beta1
>            Reporter: Alexey Scherbakov
>            Assignee: Denis Chudov
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0
>
>
> After IGNITE-21540 and IGNITE-20127 we now have proper retries on client side.
> This means we no longer need 
> org.apache.ignite.internal.tx.DeadlockPreventionPolicy#waitTimeout as a part 
> of deadock prevention policy.
> Moreover, client side retries has benefit in the following scenario (having 
> in mind WAIT_DIE prevention):
>  # tx1 takes lock at timestamp 10
>  # tx2 tries to take lock at timestamp 20 and goes for retry (without holding 
> lock)
>  # tx1 lock is released
>  # tx3 takes lock at timestamp 30
>  # tx3 lock is released
>  # tx2 attemps to lock after retry and succeeds
> Without retry (without holding locks) on step 2 tx3 would retry too on step 4.



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

Reply via email to