[infinispan-dev] putAll, getAll and optimization fruits
emmanuel at hibernate.org
Tue Sep 23 10:15:54 EDT 2014
On 23 Sep 2014, at 16:06, Emmanuel Bernard <emmanuel at hibernate.org> wrote:
> Doing that it’s 1/2 of the story, because as I’ve already explained in Wolf’s efforts around putAll, the Netty server implementation just calls to Infinispan synchronous cache operations, which often block. So, using an async client will get you 1/2 of the job done. The way to limit the blocking is by limiting that blocking, e.g. splitting keys and sending gets to nodes that own it would mean the gets get resolved locally, similar thing with puts but as Bela/Pedro found out, there could be some blocking still.
Galder, are you saying that I cannot execute put operations in parallel on the same node for the same transaction?
I.e. could the netty server use a bounded queue + thead pool to parallelize put operation in case of putAll (the other case does not matter).
Also, even if we keep the server synchronous and split the payload per server to run that in parallel, we will still gain enough I think:
- we avoid i-1 times the latency between the client and a specific node (i is the number of keys going to a specific node)
- with the key evenly distributed, you divide the overall latency by O(m) where m is the number of servers.
Something like that :)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the infinispan-dev