4 research outputs found
Consistency Models with Global Operation Sequencing and their Composition
Modern distributed systems often achieve availability and scalability by providing consistency guarantees about the data they manage weaker than linearizability. We consider a class of such consistency models that, despite this weakening, guarantee that clients eventually agree on a global sequence of operations, while seeing a subsequence of this final sequence at any given point of time. Examples of such models include the classical Total Store Order (TSO) and recently proposed dual TSO, Global Sequence Protocol (GSP) and Ordered Sequential Consistency.
We define a unified model, called Global Sequence Consistency (GSC), that has the above models as its special cases, and investigate its key properties. First, we propose a condition under which multiple objects each satisfying GSC can be composed so that the whole set of objects satisfies GSC. Second, we prove an interesting relationship between special cases of GSC - GSP, TSO and dual TSO: we show that clients that do not communicate out-of-band cannot tell the difference between these models. To obtain these results, we propose a novel axiomatic specification of GSC and prove its equivalence to the operational definition of the model
GoTcha: An Interactive Debugger for GoT-Based Distributed Systems
Debugging distributed systems is hard. Most of the techniques that have been
developed for debugging such systems use either extensive model checking, or
postmortem analysis of logs and traces. Interactive debugging is typically a
tool that is only effective in single threaded and single process applications,
and is rarely applied to distributed systems. While the live observation of
state changes using interactive debuggers is effective, it comes with a host of
problems in distributed scenarios. In this paper, we discuss the requirements
an interactive debugger for distributed systems should meet, the role the
underlying distributed model plays in facilitating the debugger, and the
implementation of our interactive debugger: GoTcha. GoTcha is a browser based
interactive debugger for distributed systems built on the Global Object Tracker
(GoT) programming model. We show how the GoT model facilitates the debugger,
and the features that the debugger can offer. We also demonstrate a typical
debugging workflow