[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