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

Kirill Tkalenko updated IGNITE-23716:
-------------------------------------
    Description: 
IGNITE-23303 addressed some of condended lock usages, but not all.

1.  -LazyStripedExecutors#executorFor - is called on every incoming message, 
and they might be millions.- Done in ticket IGNITE-23796.

2. -ClockWaiter's busyLock can be removed, because it delegates to tracker 
which already has (already optimized) busy locks.- Done in IGNITE-23811 
 
3. -IgniteAttachmentLock writes to shared location both for sync and async 
paths - it should be striped in some way.- Will be done in IGNITE-23779.

4. Make use of locks in *PendingComparableValuesTracker* and *ReplicaManager* 
as in method *org.apache.ignite.internal.util.IgniteSpinBusyLock#enterBusy*, 
and more specifically check *!lock.writeLockedByCurrentThread()* to ensure 
guarantees on closing components and increase perfomance.

5. -IgniteSpinBusyLock duplicates VersatileReadWriteLock in many aspects and 
vice versa. I believe ISBL can be replaces with VRWL.- Will be done in 
IGNITE-23779.

See for example org.apache.ignite.internal.util.IgniteUtils#inBusyLockAsync

NOTE: don't forget to check results with UpsertKvBenchmark

 
 

  was:
IGNITE-23303 addressed some of condended lock usages, but not all.

1.  -LazyStripedExecutors#executorFor - is called on every incoming message, 
and they might be millions.- Done in ticket IGNITE-23796.

2. -ClockWaiter's busyLock can be removed, because it delegates to tracker 
which already has (already optimized) busy locks.- Done in IGNITE-23811 
 
3. -IgniteAttachmentLock writes to shared location both for sync and async 
paths - it should be striped in some way.- Will be done in IGNITE-23779.

4. Make use of locks in PendingComparableValuesTracker and ReplicaManager as in 
method *org.apache.ignite.internal.util.IgniteSpinBusyLock#enterBusy*, and more 
specifically check *!lock.writeLockedByCurrentThread()* to ensure guarantees on 
closing components and increase perfomance.

5. -IgniteSpinBusyLock duplicates VersatileReadWriteLock in many aspects and 
vice versa. I believe ISBL can be replaces with VRWL.- Will be done in 
IGNITE-23779.

See for example org.apache.ignite.internal.util.IgniteUtils#inBusyLockAsync

NOTE: don't forget to check results with UpsertKvBenchmark

 
 


> Improve contented locks usage
> -----------------------------
>
>                 Key: IGNITE-23716
>                 URL: https://issues.apache.org/jira/browse/IGNITE-23716
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Alexey Scherbakov
>            Assignee: Kirill Tkalenko
>            Priority: Major
>              Labels: ignite-3
>
> IGNITE-23303 addressed some of condended lock usages, but not all.
> 1.  -LazyStripedExecutors#executorFor - is called on every incoming message, 
> and they might be millions.- Done in ticket IGNITE-23796.
> 2. -ClockWaiter's busyLock can be removed, because it delegates to tracker 
> which already has (already optimized) busy locks.- Done in IGNITE-23811 
>  
> 3. -IgniteAttachmentLock writes to shared location both for sync and async 
> paths - it should be striped in some way.- Will be done in IGNITE-23779.
> 4. Make use of locks in *PendingComparableValuesTracker* and *ReplicaManager* 
> as in method *org.apache.ignite.internal.util.IgniteSpinBusyLock#enterBusy*, 
> and more specifically check *!lock.writeLockedByCurrentThread()* to ensure 
> guarantees on closing components and increase perfomance.
> 5. -IgniteSpinBusyLock duplicates VersatileReadWriteLock in many aspects and 
> vice versa. I believe ISBL can be replaces with VRWL.- Will be done in 
> IGNITE-23779.
> See for example org.apache.ignite.internal.util.IgniteUtils#inBusyLockAsync
> NOTE: don't forget to check results with UpsertKvBenchmark
>  
>  



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

Reply via email to