[
https://issues.jboss.org/browse/ISPN-5962?page=com.atlassian.jira.plugin....
]
Sanne Grinovero commented on ISPN-5962:
---------------------------------------
BTW we've observed a 10% CPU usage drop, with slightly improved throughput too, so I
thought this was a pretty clear picture and an easy decision.
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
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?
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)