[
https://issues.apache.org/jira/browse/IGNITE-2744?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15245597#comment-15245597
]
Ilya Lantukh commented on IGNITE-2744:
--------------------------------------
Changed processMessage() implementation to call unwindEvicts() only for a
single cacheId to which processed message belongs.
The only special case is handling of GridDistributedTxFinishRequests: now all
involved cacheIds will be stored during transaction processing, and then
unwindEvicts() will be called only for those stored IDs.
Tested performance of these optimizations in 4 server 16 client environment:
throughput of single put/get operations has improved by 4% for atomic caches
and by 1% for transactional.
> Optimize "unwindEvict" call in GridCacheIoManager.processMessage().
> -------------------------------------------------------------------
>
> Key: IGNITE-2744
> URL: https://issues.apache.org/jira/browse/IGNITE-2744
> Project: Ignite
> Issue Type: Task
> Components: cache
> Affects Versions: 1.5.0.final
> Reporter: Vladimir Ozerov
> Assignee: Ilya Lantukh
> Priority: Critical
> Labels: performance
> Fix For: 1.6
>
>
> We call this method on every (!!!) received cache message. This call is
> pretty heavy as it iterates over all caches.
> We need to optimize it. E.g., check evicts only for the cache to which
> received message belongs. And iterate over the whole set only if we know for
> sure that several caches are affected (e.g. due to cross-cache TX).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)