A Simple and Iterative Reconciliation Algorithm for File Synchronizers
Total Page:16
File Type:pdf, Size:1020Kb
Syncpal: A simple and iterative reconciliation algorithm for file synchronizers Von der Fakultät für Mathematik, Informatik und Naturwissenschaften der RWTH Aachen University zur Erlangung des akademischen Grades eines Doktors der Naturwissenschaften genehmigte Dissertation vorgelegt von Marius Alwin Shekow (M.Sc.) aus Tettnang, Deutschland Berichter: Univ.-Prof. Dr. rer. pol. Matthias Jarke Univ.-Prof. Ph. D . Wolfgang Prinz Univ.-Prof. Dr. Tom Gross Tag der mündlichen Prüfung: 22. November, 2019 Diese Dissertation ist auf den Internetseiten der Universitätsbibliothek verfügbar. Eidesstattliche Erklärung Ich, Marius Alwin Shekow, erkläre hiermit, dass diese Dissertation und die darin dargelegten Inhalte die eigenen sind und selbst- ständig, als Ergebnis der eigenen originären Forschung, generiert wurden. Hiermit erkläre ich an Eides statt 1. Diese Arbeit wurde vollständig oder größtenteils in der Phase als Doktoranddieser Fakultät und Universitätangefertigt; 2. Sofern irgendein Bestandteil dieser Dissertation zuvor für einen akademischen Abschluss oder eine andere Qualifikation an dieser oder einer anderen Institution verwendet wurde, wurde diesklar angezeigt; 3. Wenn immer andere eigene- oder Veröffentlichungen Dritter herangezogen wurden, wurden diese klar benannt; 4. Wenn aus anderen eigenen- oder Veröffentlichungen Dritter zitiert wurde, wurde stets die Quelle hierfür angegeben. Diese Dissertation ist vollständig meine eigene Arbeit, mit der Ausnahme solcher Zitate; 5. Alle wesentlichen Quellen von Unterstützung wurden benannt; 6. Wenn immer ein Teil dieser Dissertation auf der Zusammenarbeit mit anderen basiert, wurde von mir klar gekennzeichnet, was von anderen und was von mir selbst erarbeitet wurde; 7. Teile dieser Arbeit wurden zuvor veröffentlicht und zwar in: • Marius Shekow. “Syncpal: A simple and iterative reconciliation algorithm for file synchroniz- ers”. In: Distributed Applications and Interoperable Systems - IFIP International Federation for Information Processing, DAIS 2019, Held as Part of the 14th International Federated Con- ference on Distributed Computing Techniques, DisCoTec 2019, Lingby, Denmark, June 18-21, 2019, Proceedings. Ed. by José Pereira and Laura Ricci. 2019 • Marius Shekow and Wolfgang Prinz. “A capability analysis of groupware, cloud and desk- top file systems for file synchronization”. In: Proceedings of 17th European Conference on Computer-Supported Cooperative Work-Exploratory Papers. The International Venue on Practicecentred Computing an the Design of Cooperation Technologies. European Society for Socially Embedded Technologies (EUSSET). 2019. DOI: 10.18420/ecscw2019_ep06. URL: http://dx.doi.org/10.18420/ecscw2019_ep06. Datum Unterschrift i Abstract File synchronizers are tools with the goal to facilitate collaboration scenarios and data management across multiple devices. They replicate the file system, e.g. from a cloud storage to a device disk, achiev- ing convergence by only transmitting detected changes. A popular variant available in a plethora of widely adopted products are state-based file synchronizers such as Dropbox. They detect operations by computing the difference between a previously persisted state and the respective current state, per- forming a bi-directional synchronization of two replicas. While users rely on synchronization to run without errors, bugs in industrial synchronizers make this difficult. Users often have to detect and fix synchronization errors themselves, and some errors remain undetected for a long time. This results in cost-intensive iterations in cooperation processes, which should be avoided in academia and industry. This work identifies three core challenges of state-based file synchronization. The first challenge is the heterogeneity of different file systems, which requires the file synchronizer to detect and handle incom- patible capabilities. Second, a synchronizer needs to detect and resolve conflicting operations that result from a group of users working on their replica in isolation. Third, non-conflicting operations computed from state differencing are not immediately suitable for propagation. The operation order is not avail- able and operations may be affected by consolidation, such that important intermediate operations are missing. This problem most notably affects file systems that support the move operation which changes an object’s parent folder. The goal of this work is to design and analyze an algorithm and develop an implementation of a file synchronizer that solves these challenges. To address heterogeneity we analyze existing real-world implementations (such as the NTFS file system) and their compatibility issues, and also examine related academic works. We identify six file system capabilities relevant to file synchronizers, formally define a file system model F that is in large parts compatible to the various existing definitions and suggest several alternatives for handling incompati- ble differences. To detect conflicts we perform a precondition analysis of the operations of F . Resolving conflicts is an open problem where the right approach depends on the context. Our related work anal- ysis finds that most academic works present arbitrary resolution methods that lack a rationale for their decisions. To determine a reflected conflict resolution approach we design a four-step framework which starts with an informal definition of consistency properties and iteratively refines it to a set of formal and detailed steps for resolving concrete conflicts. Apart from F and a conflict resolution approach the main contribution of this work is Syncpal, an itera- tive algorithm that reconciles two divergent file systems, solving all of the above challenges. It first han- dles conflicts, one at a time, such that resolving one conflict does not negatively affect others. Whenever possible, conflicts are avoided. It then finds a valid propagation order for the remaining non-conflicting operations, breaking cyclic dependencies if necessary. The iterative nature of Syncpal reduces the over- all complexity and the probability of bugs. The technical evaluation of our implementation of Sync- pal includes its complexity analysis, automated testing and a comparison with five industrial-grade file synchronizers. We find that our algorithm improves the handling of file system heterogeneity and syn- chronizes changes from long offline periods correctly, where other implementations fail and may even cause data loss. Our implementation has been in operation by 30 users over a period of over 18 months, providing valuable insights for further research regarding usage patterns and practical requirements. iii Zusammenfassung File Synchronizer sind Tools, die Kollaborationsszenarien und Daten-Management über mehrere Gerä- te hinweg vereinfachen sollen. Sie replizieren Dateisysteme, z. B. von Cloud-Speichern auf Festplatten. Dateisystem-Konvergenz wird erreicht, indem nur Änderungen übertragen werden. In der Praxis haben sich zustandsbasierte File Synchronizer wie Dropbox oder ähnliche Produkte durchgesetzt. Sie erken- nen Operationen via Differenzbildung aus einem zuvor persistierten und dem aktuellen Zustand zweier Dateisystem-Replikate und erreichen dadurch deren bidirektionale Synchronisation. Benutzer sind dar- auf angewiesen, dass die Synchronisation fehlerfrei abläuft. Marktübliche File Synchronizer erschweren dies jedoch, sodass Benutzer Synchronisationsfehler oft selbst erkennen und unter großem Zeitaufwand beheben müssen und manche Fehler lange Zeit unerkannt bleiben. Dadurch entstehen im Kooperati- onsprozess kostenintensive Iterationen, die es in Wissenschaft und Wirtschaft zu vermeiden gilt. Diese Arbeit identifiziert drei zentrale Defizite der zustandsbasierten Dateisynchronisation. Erstens be- dingt die Heterogenität verschiedener Dateisysteme, dass File Synchronizer inkompatible Eigenschaf- ten oft nicht erkennen und behandeln. Zweitens muss ein Synchronizer Konflikte erkennen und lösen, die durch den isolierten Zugriff mehrerer Benutzer auf Dateisysteme entstehen. Drittens sind konflikt- freie Operationen, die via Differenzbildung der Zustände erkannt wurden, nicht unmittelbar für die Übertragung geeignet. Hier ist die Reihenfolge der Operationen unbekannt und diese wurden evtl. kon- solidiert, sodass wichtige Zwischenoperationen fehlen. Dieses Problem betrifft insbesondere Dateisys- teme, die Verschiebe-Operationen unterstützen, die den Überordner eines Objekts ändern. Ziel dieser Arbeit ist es, diese Defizite durch einen neuartigen, verbesserten File Synchronizer zu beheben. Zum besseren Verständnis der Heterogenität analysiert diese Arbeit bestehende wissenschaftliche Ar- beiten und reale Dateisystem-Implementierungen wie NTFS und deren Kompatibilität. Der Autor iden- tifiziert sechs Dateisystem-Fähigkeiten, definiert ein formales Dateisystem-Modell F , das zu bestehen- den Definitionen größtenteils kompatibel ist, und schlägt mehrere Alternativen für den Umgang mit in- kompatiblen Eigenschaften vor. Zur Konflikt-Identifizierung wird eine Vorbedingungsanalyse der Ope- rationen von F durchgeführt. Das Lösen von Konflikten ist diffizil, da der geeignete Ansatz vom Kontext abhängt. Ein Großteil wissenschaftlicher Arbeiten löst Konflikte willkürlich und ohne Begründung der konkreten Entscheidungen auf. Zur Findung eines reflektierten Konfliktlösungsansatzes hat der Autor ein vierstufiges Framework entwickelt, das eine informelle Definition von Konsistenzeigenschaften ite- rativ zu einer Menge von formal definierten, detaillierten Konfliktauflösungsschritten verfeinert. Neben F und dem obigen Konfliktlösungsansatz