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)