Re: What's the difference between EntryProcessor and distributed closure?

2016-11-10 Thread vdpyatkov
Hi Tracyl,

You can use "invoke", the method will be most effective for retrieve part of
value from cache. For the withKeepBinary off_heap cache "invoke" takes lock
on entry and can to manipulate with off_heap pointer wrapped on
BinaryObject.



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/What-s-the-difference-between-EntryProcessor-and-distributed-closure-tp8759p8877.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.


Re: What's the difference between EntryProcessor and distributed closure?

2016-11-08 Thread Tracyl
Thanks Alexey.

By predicate/projection pushdown, I mean: currently I am storing a native
Spark Row object as value format of IgniteCache. If I retrieve it as an
IgniteRDD, I only want certain column of that Row object rather than
returning entire Row and do filter/projection at Spark level. Do you have
better recommendations to achieve this?

Tracy



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/What-s-the-difference-between-EntryProcessor-and-distributed-closure-tp8759p8790.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.


Re: What's the difference between EntryProcessor and distributed closure?

2016-11-08 Thread Alexey Goncharuk
Hi Tracyl,

Can you describe in greater detail what you are trying to achieve? To my
knowledge, predicate pushdown is a term usually used for map-reduce jobs.
The concept of Ignite's jobs and tasks is more similar to fork-join rather
than map-reduce semantics, so we could better help you if you describe what
exactly you are trying to achieve.

The difference between an EntryProcessor and a distributed closure is as
follows: EntryProcessor is a cache operation that allows you atomically
modify a single key. It is executed within cache-level entry lock and
allows you only to see the current state of the entry. It is not allowed to
call other public ignite API within an EntryProcessor. Distributed closure,
on the other hand, is executed in a public ignite thread pool and does not
hold any cache locks. You can insert any arbitrary logic inside a
distributed closure.

Let us know if you have more questions.

Thanks,
AG

2016-11-08 7:19 GMT+03:00 Tracyl :

> What I would like to do is to achieve predicate/column project push-down to
> the ignite cache layer. I guess this two options could do it, isn't it? If
> so, what's the difference? Are there any other options to achieve predicate
> push-down? Thanks in advance!
>
>
>
> --
> View this message in context: http://apache-ignite-users.
> 70518.x6.nabble.com/What-s-the-difference-between-EntryProcessor-and-
> distributed-closure-tp8759.html
> Sent from the Apache Ignite Users mailing list archive at Nabble.com.
>


What's the difference between EntryProcessor and distributed closure?

2016-11-07 Thread Tracyl
What I would like to do is to achieve predicate/column project push-down to
the ignite cache layer. I guess this two options could do it, isn't it? If
so, what's the difference? Are there any other options to achieve predicate
push-down? Thanks in advance!



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/What-s-the-difference-between-EntryProcessor-and-distributed-closure-tp8759.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.