-
Feature Request
-
Resolution: Won't Do
-
Major
-
None
-
None
Investigate whether view installation should optionally be done via 2PC. Example:
- View is A,B,C,D, splits into A,B and C,D
- Before AB is installed in A and B, view A,B,C is installed
- (C hasn't been suspected yet. This can happen with FD)
Infinispan's rebalancing algorithm has problems with this, as it tries to assign state to C which however isn't reachable from the A,B side of the network partition. It would be better if A,B,C,D went directly to A,B and C,D
Investigate whether we should add a property to GMS which defines whether to use 2PC for view installation (default would be false). The algorithm would work as follows:
- Send a PREPARE_VIEW(view) message
- When all responses have been received -> send a COMMIT_VIEW message
- Else
- Inject SUSPECT(C) event for all misisng acks OR
- Set a timer to go off in N ms -> when it fires, send the COMMIT_VIEW msg
- If another view is installed before the tmer goes off (e.g. A,B) -> kill the timer