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

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

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

Anton Vinogradov (Jira)
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)