It is impossible to set multiple masters in config.
A bucket, referenced on write on a non-configured master is not referenced on a real master. So rebalancing still can start.
Router is not aware of multiple masters existence.
Solutions (possible):
Just allow it. And store internally everywhere not a single master, but a list of masters.
A master going to send buckets should block them on all other replicaset masters before sending.
Store a list of masters and allow to send read-write requests to any.
Also a new high-potential feature can be added after this feature is done: allow to send buckets from multiple masters of the same replicaset. It will speed rebalancing up to average replicaset size. In join with parallel sending https://github.com/tarantool/vshard/issues/161 the rebalancing speed will be incredible even with Vinyl.
Master-master in vshard now has some problems:
Solutions (possible):
Also a new high-potential feature can be added after this feature is done: allow to send buckets from multiple masters of the same replicaset. It will speed rebalancing up to average replicaset size. In join with parallel sending https://github.com/tarantool/vshard/issues/161 the rebalancing speed will be incredible even with Vinyl.