Dynamic Reconfiguration: Abstraction and Optimal Asynchronous Solution

Providing clean and efficient foundations and tools for reconfiguration is a crucial enabler for distributed system management today. This work takes a step towards developing such foundations. It considers classic fault-tolerant atomic objects emulated on top of a static set of fault-prone servers, and turns them into dynamic ones. The specification of a dynamic object extends the corresponding static (non-dynamic) one with an API for changing the underlying set of fault-prone servers. Thus, in a dynamic model, an object can start in some configuration and continue in a different one. Its liveness is preserved through the reconfigurations it undergoes, tolerating a versatile set of faults as it shifts from one configuration to another. In this paper we present a general abstraction for asynchronous reconfiguration, and exemplify its usefulness for building two dynamic objects: a read/write register and a max-register. We first define a dynamic model with a clean failure condition that allows an administrator to reconfigure the system and switch off a server once the reconfiguration operation removing it completes. We then define the Reconfiguration abstraction and show how it can be used to build dynamic registers and max-registers. Finally, we give an optimal asynchronous algorithm implementing the Reconfiguration abstraction, which in turn leads to the first asynchronous (consensus-free) dynamic register emulation with optimal complexity. More concretely, faced with n requests for configuration changes, the number of configurations that the dynamic register is implemented over is n; and the complexity of each client operation is O(n).

[1]  Nir Shavit,et al.  Atomic snapshots of shared memory , 1990, PODC '90.

[2]  Sam Toueg,et al.  Fault-tolerant wait-free shared objects , 1992, Proceedings., 33rd Annual Symposium on Foundations of Computer Science.

[3]  D. Dolev,et al.  Sharing memory robustly in message-passing systems , 1995, JACM.

[4]  Dahlia Malkhi,et al.  Active disk paxos with infinitely many processes , 2002, PODC.

[5]  Alex A. Shvartsmanz Rambo: A Reconfigurable Atomic Memory Service for Dynamic Networks , 2002 .

[6]  Nancy A. Lynch,et al.  Rambo II: rapidly reconfigurable atomic memory for dynamic networks , 2003, 2003 International Conference on Dependable Systems and Networks, 2003. Proceedings..

[7]  Vincent Gramoli,et al.  Reconfigurable Distributed Storage for Dynamic Networks , 2005, OPODIS.

[8]  Hagit Attiya,et al.  Max registers, counters, and monotone circuits , 2009, PODC '09.

[9]  Dahlia Malkhi Virtually Synchronous Methodology for Dynamic Service Replication , 2010 .

[10]  Idit Keidar,et al.  Data-centric reconfiguration with network-attached disks , 2010, LADIS '10.

[11]  Leslie Lamport,et al.  Reconfiguring a state machine , 2010, SIGA.

[12]  Nancy A. Lynch,et al.  Rambo: a robust, reconfigurable atomic memory service for dynamic networks , 2010, Distributed Computing.

[13]  Marcos K. Aguilera,et al.  Reconfiguring Replicated Atomic Storage: A Tutorial , 2013, Bull. EATCS.

[14]  Dynamic atomic storage without consensus , 2011, JACM.

[15]  Michel Raynal,et al.  Implementing a Regular Register in an Eventually Synchronous Distributed System Prone to Continuous Churn , 2012, IEEE Transactions on Parallel and Distributed Systems.

[16]  Eli Gafni,et al.  Elastic Configuration Maintenance via a Parsimonious Speculating Snapshot Solution , 2015, DISC.

[17]  Hein Meling,et al.  SmartMerge: A New Approach to Reconfiguration for Atomic Storage , 2015, DISC.

[18]  Faith Ellen,et al.  Simulating a Shared Register in an Asynchronous System that Never Stops Changing - (Extended Abstract) , 2015, DISC.

[19]  Hein Meling,et al.  The Case for Reconfiguration without Consensus: Comparing Algorithms for Atomic Storage , 2016, OPODIS.

[20]  Gregory V. Chockler,et al.  FRAPPE: Fast Replication Platform for Elastic Services , 2016, ArXiv.

[21]  Idit Keidar,et al.  Dynamic Atomic Snapshots , 2016, OPODIS.

[22]  A. Spiegelman,et al.  Dynamic Reconfiguration: A Tutorial∗ , 2016 .

[23]  Idit Keidar,et al.  On Liveness of Dynamic Storage , 2015, SIROCCO.

[24]  Alexander Spiegelman,et al.  Space Complexity of Fault-Tolerant Register Emulations , 2017, PODC.

[25]  Idit Keidar,et al.  Dynamic Reconfiguration : Abstraction and Optimal Asynchronous Solution XX : 3 , 2018 .