Application-based dynamic primary views in asynchronous distributed systems
We consider programming network applications that are based on the process group paradigm. When such applications are deployed in unreliable networks, they may partition into several disconnected clusters causing multiple views of the group's current composition to exist concurrently. In this paper we propose a mechanism for efficiently deciding when a view constitutes the primary partition for the group. Our solution is highly flexible and has the following features: possibility to modify selection rules at run-time without having to halt and restart the application; support for dynamic groups whose membership may change not only due to failures/recoveries but also due to processes voluntarily joining and leaving; ability to re-establish a primary partition even after a total failure scenario where all group members crash. These features facilitate the development of partition-aware applications that are capable of adapting themselves to their operating environment by establishing selection rules based on observed execution characteristics.
adaptability replication group communication virtual synchrony dynamic voting partitionable membership quorum system environment awareness