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