[ 
https://issues.apache.org/jira/browse/IGNITE-2744?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15282713#comment-15282713
 ] 

Semen Boikov commented on IGNITE-2744:
--------------------------------------

Here are my comments:

- IgniteTxHandler's methods 'processNearTxPrepareResponse', 
'processDhtTxPrepareResponse' it should be possible to get tx from cache future 
you already have and avoid 'tm().tx' call
- error in IgniteTxImplicitSingleStateImpl.unwindEvicts: 'if (entry == null && 
entry.isEmpty())' need change to 'if (entry == null || entry.isEmpty())'

It is hard to tell is tx state is really initialized for all messages, even it 
is works now it can be easily broken after code changes. Can we add test which 
check that tx state is really set for all messages?

Also it would be more easy to understand this change if tx state was always set 
in some 'top level' message process message (like it is done for example in 
'processNearTxPrepareResponse'). Is it possible to change code this way?

> 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: Semen Boikov
>            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