[ 
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)

Reply via email to