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

Ilya Lantukh commented on IGNITE-2333:
--------------------------------------

{quote}
For now this lock will be used mostly by system pool. And system pool threads 
start immediately on node start. As such, Thread.getId() will give worse index 
distribution than AtomicInteger.incrementAndGet(). Please rework it to atomics.
{quote}

As I understand, you suggest to use
{noformat}
int idx = counter.getAndIncrement() % locks.length;
{noformat}
on readLock() call. Please correct me if I am wrong.

Unfortunately, GridDhtPartitionTopologyImpl strongly relies on the fact that 
readLock() will always return the same instance for the same thread. It's 
public interface has readLock() and readUnlock() methods that don't return Lock 
reference. There are quite a number of places where these methods are used. 
Should I rework it as part of this ticket?

Other problems have been fixed.

> Hotspot in GridDhtPartitionTopologyImpl readLock() and readUnlock() methods
> ---------------------------------------------------------------------------
>
>                 Key: IGNITE-2333
>                 URL: https://issues.apache.org/jira/browse/IGNITE-2333
>             Project: Ignite
>          Issue Type: Sub-task
>          Components: cache, general
>    Affects Versions: ignite-1.4
>            Reporter: Vladimir Ozerov
>            Assignee: Ilya Lantukh
>             Fix For: 1.6
>
>
> When running simple PUT benchmark in ATOMIC cache, read lock-unlock consumes 
> up to 10% of time.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to