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)