[
https://issues.jboss.org/browse/ISPN-835?page=com.atlassian.jira.plugin.s...
]
Manik Surtani commented on ISPN-835:
------------------------------------
This is definitely non-trivial. One approach would be to scrap senders replaying messages
altogether. Let joiners receive - and enqueue - messages it receives but cannot process
due to state transfer not being completed. Then at the end of the ST process, apply
enqueued writes, and then throw open the latch.
This way the whole sync approach to deal with replays goes away.
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
Priority: Critical
Fix For: 4.2.1.Final, 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