Hello,
I'd like to ask the community members to share their thoughts/opinions on the
following subject.
JCache provides a way to atomically execute one or more actions against a cache
entry using the Entry Processor mechanism. The Cache interface exposes an
invoke() method that takes a key of the cache entry to be acted upon and an
instance of the EntryProcessor interface as its parameters. When invoked, the
entry processor will be passed an instance of JCache's MutableEntry which gives
the processor exclusive access to the cache entry for the duration of the
EntryProcessor.process() call. Great feature for delta updates, in-place
compute, coordination/agreement (a la zookeeper), and so on!
Now, if one were to put his Ignite user hat on, what execution semantics would
you as a user expect? Specifically,
1) the EntryProcessor is executed on the key's primary node as well as all
backup nodes.
2) the EntryProcessor is executed only on the key's primary node.
3) something else.
Unfortunately JCache spec doesn't provide much details on this feature. Ignite
documentation is silent, too.
Thanks
Andrey