Got: Git, but for Objects
We look at one important category of distributed applications characterized by the existence of multiple collaborating, and competing, components sharing mutable, long-lived, replicated objects. The problem addressed by our work is that of object state synchronization among the components. As an org...
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | We look at one important category of distributed applications characterized
by the existence of multiple collaborating, and competing, components sharing
mutable, long-lived, replicated objects. The problem addressed by our work is
that of object state synchronization among the components. As an organizing
principle for replicated objects, we formally specify the Global Object Tracker
(GoT) model, an object-oriented programming model based on causal consistency
with application-level conflict resolution strategies, whose elements and
interfaces mirror those found in decentralized version control systems: a
version graph, working data, diffs, commit, checkout, fetch, push, and merge.
We have implemented GoT in a framework called Spacetime, written in Python.
In its purest form, GoT is impractical for real systems, because of the
unbounded growth of the version graph and because passing diff'ed histories
over the network makes remote communication too slow. We present our solution
to these problems that adds some constraints to GoT applications, but that
makes the model feasible in practice. We present a performance analysis of
Spacetime for representative workloads, which shows that the additional
constraints added to GoT make it not just feasible, but viable for real
applications. |
---|---|
DOI: | 10.48550/arxiv.1904.06584 |