[
https://issues.jboss.org/browse/ISPN-9852?page=com.atlassian.jira.plugin....
]
Dan Berindei commented on ISPN-9852:
------------------------------------
It shouldn't be {{StateTransferLock}}'s job to resume invocations in parallel, it
should be the caller: {{StateTransferInterceptor}} already uses
{{thenRunAsync(remoteExecutor}}, but {{DefaultTopologyRunnable}}/{{BaseBlockingRunnable}}
use {{whenComplete()}}.
Invocations waiting for a new topology should resume in parallel
----------------------------------------------------------------
Key: ISPN-9852
URL:
https://issues.jboss.org/browse/ISPN-9852
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 10.0.0.Alpha2, 9.4.5.Final
Reporter: Dan Berindei
Assignee: Dan Berindei
Priority: Major
When a command requires a topology newer than the current topology, it uses
{{StateTransferLock.transactionDataFuture()}} to wait for the newer topology. When the tx
data is received for the newer topology, some (most?) of the waiting operations do not
use a separate executor, instead they are all resumed on the thread that received the tx
data. If some operations block (e.g. because of a store), it could take a very long time
to finish all the blocked operations.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)