Models and Software Model Checking of a Distributed File Replication System

With the Distributed File System Replication component, DFS-R, as the central theme, we present selected protocol problems and validation methods encountered during design and development. DFS-R is currently deployed in various contexts; in Windows Server 2003-R2, Windows Live Messenger (Sharing Folders), and Windows Vista (Meeting spaces). The journey from an initial design sketch to a shipped product required mainly the dedicated effort of several testers, developers, program managers, and several others; but in some places cute problems related to distributed consensus and software model-checking emerged. This paper presents a few of these, including a distributed garbage collection problem, distributed consensus problems for reconciling treelike data structures, using model-based test case generation, and the use of software model checking in design and development process.

[1]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[2]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[3]  Francisco Moura,et al.  Improving causality logging in mobile computing networks , 1998, MOCO.

[4]  Nikolaj Bjørner,et al.  Optimizing File Replication over Limited-Bandwidth Networks using Remote Differential Compression , 2006 .

[5]  John S. Heidemann,et al.  Management of Replicated Volume Location Data in the Ficus Replicated File System , 1991, USENIX Summer.

[6]  Yasushi Saito,et al.  Optimistic replication , 2005, CSUR.

[7]  Rui Guo,et al.  Simulating large-scale P2P systems with the WiDS toolkit , 2005, 13th IEEE International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems.

[8]  Benjamin C. Pierce,et al.  Theoretical Aspects of Computer Software , 2001, Lecture Notes in Computer Science.

[9]  Margus Veanes,et al.  Towards a Tool Environment for Model-Based Testing with AsmL , 2003, FATES.

[10]  Michael J. Fischer,et al.  Sacrificing serializability to attain high availability of data in an unreliable network , 1982, PODS.

[11]  James E. Allchin A Suite of Robust Algorithms For Maintaining Replicated Data Using Weak Consistency Conditions , 1983, Symposium on Reliability in Distributed Software and Database Systems.

[12]  Dahlia Malkhi,et al.  Concise Version Vectors in WinFS , 2005, DISC.

[13]  Marvin Theimer,et al.  Flexible update propagation for weakly consistent replication , 1997, SOSP.

[14]  Benjamin C. Pierce,et al.  Unison: A File Synchronizer and Its Specification , 2001, TACS.

[15]  Robert Wilensky,et al.  The hash history approach for reconciling mutual inconsistency , 2003, 23rd International Conference on Distributed Computing Systems, 2003. Proceedings..

[16]  Brian Nielsen,et al.  Formal Approaches to Software Testing, 4th International Workshop, FATES 2004, Linz, Austria, September 21, 2004, Revised Selected Papers , 2005, FATES.

[17]  Yogen K. Dalal,et al.  The clearinghouse: a decentralized agent for locating named objects in a distributed environment , 1983, TOIS.

[18]  Jakob Rehof,et al.  Zing: A Model Checker for Concurrent Software , 2004, CAV.