Abortable Fork-Linearizable Storage

We address the problem of emulating a shared read/write memory in a message passing system using a storage server prone to Byzantine failures. Although cryptography can be used to ensure confidentiality and integrity of the data, nothing can prevent a malicious server from returning obsolete data. Fork-linearizability [1] guarantees that if a malicious server hides an update of some client from another client, then these two clients will never see each others' updates again. Fork-linearizability is arguably the strongest consistency property attainable in the presence of a malicious server. Recent work [2] has shown that there is no fork-linearizable shared memory emulation that supports wait-free operations. On the positive side, it has been shown that lock-based emulations exist [1,2]. Lock-based protocols are fragile because they are blocking if clients may crash. In this paper we present for the first time lock-free emulations of fork-linearizable shared memory. We have developed two protocols, Linear and Concur . With a correct server, both protocols guarantee linearizability and that every operation successfully completes in the absence of step contention, while interfering operations terminate by aborting. The Concur algorithm additionally ensures that concurrent operations invoked on different registers complete successfully.

[1]  Sam Toueg,et al.  Fault-tolerant wait-free shared objects , 1992, Proceedings., 33rd Annual Symposium on Foundations of Computer Science.

[2]  David Mazières,et al.  Beyond One-Third Faulty Replicas in Byzantine Fault Tolerant Systems , 2007, NSDI.

[3]  Abhi Shelat,et al.  Efficient fork-linearizable access to untrusted shared memory , 2007, PODC '07.

[4]  Marcos K. Aguilera,et al.  Abortable and query-abortable objects and their efficient implementation , 2007, PODC '07.

[5]  E. James Whitehead,et al.  World Wide Web distributed authoring and versioning (WebDAV): an introduction , 1997, STAN.

[6]  Rachid Guerraoui,et al.  The complexity of obstruction-free implementations , 2009, JACM.

[7]  Idit Keidar,et al.  Fail-Aware Untrusted Storage , 2009, 2009 IEEE/IFIP International Conference on Dependable Systems & Networks.

[8]  Idit Keidar,et al.  Fork sequential consistency is blocking , 2009, Inf. Process. Lett..

[9]  Idit Keidar,et al.  Trusting the cloud , 2009, SIGA.

[10]  Rachid Guerraoui,et al.  Computing with Reads and Writes in the Absence of Step Contention , 2005, DISC.

[11]  Dennis Shasha,et al.  Building secure file systems out of byzantine storage , 2002, PODC '02.

[12]  Idit Keidar,et al.  ACM SIGACT news distributed computing column 34: distributed computing in the clouds , 2009, SIGA.

[13]  Kousha Etessami,et al.  Recursive Markov chains, stochastic grammars, and monotone systems of nonlinear equations , 2005, JACM.

[14]  Marcos K. Aguilera,et al.  Timeliness-based wait-freedom: a gracefully degrading progress condition , 2008, PODC '08.

[15]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[16]  Michael K. Reiter,et al.  On Consistency of Encrypted Files , 2006, DISC.

[17]  Leslie Lamport,et al.  Reaching Agreement in the Presence of Faults , 1980, JACM.

[18]  Maurice Herlihy,et al.  Obstruction-free synchronization: double-ended queues as an example , 2003, 23rd International Conference on Distributed Computing Systems, 2003. Proceedings..

[19]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.

[20]  Haixun Wang,et al.  Lock-free consistency control for web 2.0 applications , 2008, WWW.