[
https://issues.jboss.org/browse/ISPN-835?page=com.atlassian.jira.plugin.s...
]
Galder Zamarreño commented on ISPN-835:
---------------------------------------
Manik, not sure you understood what I meant: If you use a repl queue, you'll use a
separate thread to send the replication, but the replication message underneath will still
be sync due to the replay transformation which happens further down the code, correct? The
only difference is that instead of blocking the user thread and getting the exception to
bubble up to the client thread, you'd see the exception in the repl queue thread.
Clearly, as you said, cos these threads will block, you'll need to size the pool
correctly to avoid starvation.
State transfer should not force all invocations to be synchronous
-----------------------------------------------------------------
Key: ISPN-835
URL:
https://issues.jboss.org/browse/ISPN-835
Project: Infinispan
Issue Type: Bug
Components: RPC, State transfer
Affects Versions: 4.1.0.Final, 4.2.0.CR4
Reporter: Galder Zamarreño
Assignee: Manik Surtani
Fix For: 5.0.0.BETA1, 5.0.0.Final
Enabling state transfer is forcing even asynchronous caches to become synchronous.
A better way is needed to make sure state transfer works correctly (sync calls needed
here) while normal replication calls remain asynchronous.
See
https://github.com/infinispan/infinispan/blob/master/core/src/main/java/o...
where the response mode is overridden based on whether replay is supported. And replay
support is always on when state transfer is enabled:
https://github.com/infinispan/infinispan/blob/master/core/src/main/java/o...
Need to explore whether a joiner flag can be maintained based on a view change, and
replay only supported when a joiner is still "joining", and not otherwise.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira