ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nikolay Tikhonov (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (IGNITE-3471) Do not send previous value to client node for invoke() when possible
Date Tue, 13 Sep 2016 18:10:21 GMT

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

Mime
View raw message