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.
