You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Vladimir Ozerov (JIRA)" <ji...@apache.org> on 2016/01/19 16:14:39 UTC

[jira] [Created] (IGNITE-2408) Hot spot in GridDhtAtomicCache$DeferredResponseBuffer.addResponse()

Vladimir Ozerov created IGNITE-2408:
---------------------------------------

             Summary: Hot spot in GridDhtAtomicCache$DeferredResponseBuffer.addResponse()
                 Key: IGNITE-2408
                 URL: https://issues.apache.org/jira/browse/IGNITE-2408
             Project: Ignite
          Issue Type: Sub-task
          Components: cache
    Affects Versions: 1.5
            Reporter: Vladimir Ozerov
            Priority: Critical
             Fix For: 1.6


Problems:
1) DeferredResponseBuffer.respVers is ConcurrentLinkedDeque8 and size() method is called on it. It is O(N) for this collection, hence the hot spot.
2) We use read-write lock for very small updates. This is not efficient.

Probably we should simply switch to (sycnhronized + ArrayList) and this will be enough. 
If synchronized is not an option, at the very least we must use collection with O(1) size or maintain separate counter (e.g. LongAccumulator).



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