]
Dan Berindei commented on JGRP-1901:
------------------------------------
[~belaban] going by this line of reasoning you should also remove
{{GMS.view_ack_collection_timeout}} - AFAICT all it does is delay the view installation on
the coordinator. If you want to track how long it takes for all the members to ack the
view, you can do that asynchronously - so that broadcast RPCs on the coordinator are not
blocked.
GMS: view installation via 2PC
------------------------------
Key: JGRP-1901
URL:
https://issues.jboss.org/browse/JGRP-1901
Project: JGroups
Issue Type: Feature Request
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 3.6.2
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