READ transactions that read data distributed across servers dominate the workloads of real-world distributed storage systems. The SNOW Theorem [13] stated that ideal READ transactions that have optimal latency and the strongest guarantees—i.e., “SNOW” READ transactions–are impossible in one specific setting that requires three or more clients: at least two readers and one writer. However, it left many open questions. We close all of these open questions with new impossibility results and new algorithms. First, we prove rigorously the result from [13] saying that it is impossible to have a READ transactions system that satisfies SNOW properties with three or more clients. The insight we gained from this proof led to teasing out the implicit assumptions that are required to state the results and also, resolving the open question regarding the possibility of SNOW with two clients. We show that it is possible to design an algorithm, where SNOW is possible in a multi-writer, single-reader (MWSR) setting when a client can send messages to other clients; on the other hand, we prove it is impossible to implement SNOW in a multi-writer, single-reader (MWSR) setting-which is more general than the two-client setting-when client-to-client communication is disallowed. We also correct the previous claim in [13] that incorrectly identified one existing system, Eiger [12], as supporting the strongest guarantees (SW) and whose read-only transactions had bounded latency. Thus, there were no previous algorithms that provided the strongest guarantees and had bounded latency. Finally, we introduce the first two algorithms to provide the strongest guarantees with bounded latency.
[1]
Maurice Herlihy,et al.
Linearizability: a correctness condition for concurrent objects
,
1990,
TOPL.
[2]
Shuai Mu,et al.
The SNOW Theorem and Latency-Optimal Read-Only Transactions
,
2016,
OSDI.
[3]
Andreas Reuter,et al.
Transaction Processing: Concepts and Techniques
,
1992
.
[4]
Nancy A. Lynch,et al.
Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services
,
2002,
SIGA.
[5]
Christos H. Papadimitriou,et al.
The serializability of concurrent database updates
,
1979,
JACM.
[6]
Hagit Attiya,et al.
Sequential consistency versus linearizability
,
1994,
TOCS.
[7]
Hui Ding,et al.
TAO: Facebook's Distributed Data Store for the Social Graph
,
2013,
USENIX Annual Technical Conference.
[8]
Nancy A. Lynch,et al.
Impossibility of distributed consensus with one faulty process
,
1983,
PODS '83.
[9]
Michael J. Freedman,et al.
Stronger Semantics for Low-Latency Geo-Replicated Storage
,
2013,
NSDI.
[10]
Nancy A. Lynch,et al.
The SNOW Theorem Revisited
,
2018,
ArXiv.
[11]
Christopher Frost,et al.
Spanner: Google's Globally-Distributed Database
,
2012,
OSDI.
[12]
Seif Haridi,et al.
Distributed Algorithms
,
1992,
Lecture Notes in Computer Science.