Hi,

I fix it by myself. 

I make two mistakes.

#1 peerClassLoadingEnabled is disabled by default. Should enable it.
#2 get ignite instance using:
  @IgniteInstanceResource
  Ignite ignite;

  Can't pass client ignite instance to it. 

Anyway, IMO, for EntryProcessor API it is a little error prone. 

Thanks
Shawn

-----邮件原件-----
发件人: Shawn Du [mailto:[email protected]] 
发送时间: 2016年12月22日 10:34
收件人: [email protected]
主题: 答复: Cache.invoke are terribly slow and can't update cache

Thanks Val!

Can you explain more detail how "invoke" works internally comparing with put
operation. For we pass a "function" to ignite. 

I see below Java Doc about "invoke"

* An instance of entry processor must be stateless as it may be invoked
multiple times on primary and
* backup nodes in the cache. It is guaranteed that the value passed to the
entry processor will be always
* the same.

My question: can we use *outer* object in the function process of
EntryProcessor which is visible in its scope?
More complex, how to iterate, just like in my code?

Thanks
Shawn


-----邮件原件-----
发件人: vkulichenko [mailto:[email protected]]
发送时间: 2016年12月22日 2:52
收件人: [email protected]
主题: Re: Cache.invoke are terribly slow and can't update cache

Hi Shawn,

Cache is not updated because you never update it :) i.e. entry.setValue() is
never called.

Bad performance can be caused by the fact that you do multiple operations
one after another in a single thread without any batching. Consider using
invokeAll or IgniteDataStreamer.

As for OOME, it's hard to tell what's causing it. Did you look at the heap
dump?

-Val



--
View this message in context:
http://apache-ignite-users.70518.x6.nabble.com/Cache-invoke-are-terribly-slo
w-and-can-t-update-cache-tp9676p9685.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Reply via email to