[infinispan-issues] [JBoss JIRA] (ISPN-5962) Implementation of RpcManagerImpl.invokeRemotely causes high CPU usage
Pedro Ruivo (JIRA)
issues at jboss.org
Wed Nov 18 03:33:00 EST 2015
[ https://issues.jboss.org/browse/ISPN-5962?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13130069#comment-13130069 ]
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)
More information about the infinispan-issues
mailing list