]
Dan Berindei updated ISPN-5962:
-------------------------------
Status: Resolved (was: Pull Request Sent)
Fix Version/s: 8.1.0.Final
(was: 8.2.0.Alpha1)
Resolution: Done
Implementation of RpcManagerImpl.invokeRemotely causes high CPU
usage
---------------------------------------------------------------------
Key: ISPN-5962
URL:
https://issues.jboss.org/browse/ISPN-5962
Project: Infinispan
Issue Type: Enhancement
Components: Core
Affects Versions: 8.1.0.Beta1
Reporter: Sanne Grinovero
Assignee: Pedro Ruivo
Fix For: 8.1.0.Final
Attachments: CompletableFutureBenchmarks.java
The method
{{org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(Collection<Address>,
ReplicableCommand, RpcOptions)}} is implemented by blocking on a {{CompletableFuture}},
but this then stalls on {{java.util.concurrent.CompletableFuture.waitingGet(boolean)}} by
spending a significant amount of CPU time by spinning.
When implementing RPC calls and having to wait for remote operations, spinning is
probably not a good idea. Could we try implementing this in some way to hint towards a
more pessimistic lock?