[
https://issues.jboss.org/browse/ISPN-5962?page=com.atlassian.jira.plugin....
]
Pedro Ruivo commented on ISPN-5962:
-----------------------------------
we may use {{CompletableFuture.get(long timeout, TimeUnit unit)}} as it does not spin (at
least in openjdk). Checking the openjdk source code: {{We intentionally don't spin
here (as waitingGet does) because the call to nanoTime() above acts much like a spin.}}
thoughts?
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
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?
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)