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

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

1. 
{noformat}
public Executor executorFor(short executorIndex, int stripeIndex) {
    assert executorIndex >= 0 : "Executor index is negative: " + executorIndex;

    if (!busyLock.enterBusy()) {
        return NO_OP_EXECUTOR;
    }

    try {
        return stripedExecutorFor(executorIndex).stripeExecutor(stripeIndex);
    } finally {
        busyLock.leaveBusy();
    }
}{noformat}
is called on every incoming message, and they might be millions.

2. ClockWaiter's busyLock can be removed, because it delegates to tracker which 
already has (already optimized) busy locks.
 
3. IgniteAttachmentLock writes to shared location both for sync and async paths.
 
 

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

1. 

 
{noformat}
public Executor executorFor(short executorIndex, int stripeIndex) {
    assert executorIndex >= 0 : "Executor index is negative: " + executorIndex;

    if (!busyLock.enterBusy()) {
        return NO_OP_EXECUTOR;
    }

    try {
        return stripedExecutorFor(executorIndex).stripeExecutor(stripeIndex);
    } finally {
        busyLock.leaveBusy();
    }
}{noformat}
is called on every incoming message, and they might be millions.

2. 
ClockWaiter's busyLock can be removed, because it delegates to tracker which 
already has (already optimized) busy locks.
 
3. IgniteAttachmentLock writes to shared location both for sync and async paths.
 
 


> Improve contented locks usage
> -----------------------------
>
>                 Key: IGNITE-23716
>                 URL: https://issues.apache.org/jira/browse/IGNITE-23716
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Alexey Scherbakov
>            Priority: Major
>              Labels: ignite-3
>
> IGNITE-23303 addressed some of condended lock usages, but not all.
> 1. 
> {noformat}
> public Executor executorFor(short executorIndex, int stripeIndex) {
>     assert executorIndex >= 0 : "Executor index is negative: " + 
> executorIndex;
>     if (!busyLock.enterBusy()) {
>         return NO_OP_EXECUTOR;
>     }
>     try {
>         return stripedExecutorFor(executorIndex).stripeExecutor(stripeIndex);
>     } finally {
>         busyLock.leaveBusy();
>     }
> }{noformat}
> is called on every incoming message, and they might be millions.
> 2. ClockWaiter's busyLock can be removed, because it delegates to tracker 
> which already has (already optimized) busy locks.
>  
> 3. IgniteAttachmentLock writes to shared location both for sync and async 
> paths.
>  
>  



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

Reply via email to