You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Nikolay Tikhonov (JIRA)" <ji...@apache.org> on 2016/09/13 18:10:21 UTC
[jira] [Comment Edited] (IGNITE-3471) Do not send previous value to
client node for invoke() when possible
[ https://issues.apache.org/jira/browse/IGNITE-3471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15487923#comment-15487923 ]
Nikolay Tikhonov edited comment on IGNITE-3471 at 9/13/16 6:09 PM:
-------------------------------------------------------------------
Implementing that entry processor is invoked only on owner nodes. In this case new value will be kept on primary node and will be sent to originating node, if get method was explicitly called.
was (Author: ntikhonov):
Implementing that entry processor is invoked only on owner nodes. In cases when entry processor doesn't modify then an entry value will not be sent to originating node.
> Do not send previous value to client node for invoke() when possible
> --------------------------------------------------------------------
>
> Key: IGNITE-3471
> URL: https://issues.apache.org/jira/browse/IGNITE-3471
> Project: Ignite
> Issue Type: Task
> Components: cache
> Affects Versions: 1.4
> Reporter: Alexey Goncharuk
> Assignee: Nikolay Tikhonov
> Attachments: CacheEntryProcessorTxSelfTest.java
>
>
> Currently for invoke() or invokeAll() methods we send previous cache value to near node and apply EntryProcessor locally to get a return value. This can induce a significant overhead when cache value is much larger than entry processor result.
> For many cases this can be avoided, e.g.
> {code}
> try (tx = txStart()) {
> cache.invoke(key, EP); // No need to send previous value to client in this case.
> tx.commit();
> }
> {code}
> Note that we need to add additional handling of such a case:
> {code}
> try (tx = txStart()) {
> cache.invoke(key, EP); // No need to send previous value to client in this case.
> cache.get(key); // This should actually get the current cache value from primary node and apply an entry processor locally to get the updated value.
> tx.commit();
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)