Abstract
Linearizability is a key design methodology for reasoning about implementations of concurrent abstract data types in both shared memory and message passing systems. It provides the illusion that operations execute sequentially and fault-free, despite the asynchrony and faults inherent to a concurrent system, especially a distributed one. A key property of linearizability is inter-object composability: a system composed of linearizable objects is itself linearizable. However, devising linearizable objects is very difficult, requiring complex algorithms to work correctly under general circumstances, and often resulting in bad average-case behavior. Concurrent algorithm designers therefore resort to speculation: optimizing algorithms to handle common scenarios more efficiently. The outcome are even more complex protocols, for which it is no longer tractable to prove their correctness.
To simplify the design of efficient yet robust linearizable protocols, we propose a new notion: speculative linearizability. This property is as general as linearizability, yet it allows intra-object composability: the correctness of independent protocol phases implies the correctness of their composition. In particular, it allows the designer to focus solely on the proof of an optimization and derive the correctness of the overall protocol from the correctness of the existing, non-optimized one.
Our notion of protocol phases allows processes to independently switch from one phase to another, without requiring them to reach agreement to determine the change of a phase. To illustrate the applicability of our methodology, we show how examples of speculative algorithms for shared memory and asynchronous message passing naturally fit into our framework.
We rigorously define speculative linearizability and prove our intra-object composition theorem in a trace-based as well as an automaton-based model. To obtain a further degree of confidence, we also formalize and mechanically check the theorem in the automaton-based model, using the I/O automata framework within the Isabelle interactive proof assistant. We expect our framework to enable, for the first time, scalable specifications and mechanical proofs of speculative implementations of linearizable objects.
- M. K. Aguilera, S. Frolund, V. Hadzilacos, S. L. Horn, and S. Toueg. Abortable and query-abortable objects and their efficient implementation. In PODC, 2007. Google Scholar
Digital Library
- M. Bickford, C. Kreitz, R. v. Renesse, and X. Liu. Proving hybrid protocols correct. In TPHOLs '01, 2001. Google Scholar
Digital Library
- W. J. Bolosky, D. Bradshaw, R. B. Haagens, N. P. Kusters, and P. Li. Paxos replicated state machines as the basis of a high-performance data store. In Proc. NSDI. USENIX Assoc., 2011. Google Scholar
Digital Library
- M. Burrows. The Chubby lock service for loosely-coupled distributed systems. In Proc. OSDI. USENIX Assoc., 2006. Google Scholar
Digital Library
- M. Castro and B. Liskov. A correctness proof for a practical byzantine-fault-tolerant replication algorithm. Technical report, MIT, 1999. Google Scholar
Digital Library
- M. Castro and B. Liskov. Practical Byzantine fault tolerance. In OSDI, 1999. Google Scholar
Digital Library
- E. Gafni and L. Lamport. Disk paxos. Distributed Computing, 16(1):1--20, 2003. Google Scholar
Digital Library
- R. Guerraoui, N. Knezevic, V. Quema, and M. Vukolic. The Next 700 BFT Protocols. In EUROSYS, 2010. Google Scholar
Digital Library
- R. Guerraoui, V. Kuncak, and G. Losa. Speculative Linearizability. Technical Report 170038, EPFL, 2011.Google Scholar
- R. Guerraoui, V. Kuncak, and G. Losa. Abortable linearizable modules. In G. Klein, T. Nipkow, and L. Paulson, editors, The Archive of Formal Proofs. http://afp.sf.net/entries/Abortable_Linearizable_Modules.shtml, 2012. Formal proof development.Google Scholar
- M. Herlihy. Wait-free synchronization. ACM Trans. Program. Lang. Syst., 13:124--149, January 1991. Google Scholar
Digital Library
- M. P. Herlihy and J. M. Wing. Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst., 12(3):463--492, 1990. Google Scholar
Digital Library
- M. Jaskelioff and S. Merz. Proving the correctness of Disk Paxos. In G. Klein, T. Nipkow, and L. Paulson, editors, The Archive of Formal Proofs. http://afp.sf.net/entries/DiskPaxos.shtml, June 2005. Formal proof development.Google Scholar
- P. Jayanti. Adaptive and efficient abortable mutual exclusion. In PODC, 2003. Google Scholar
Digital Library
- R. Kotla, L. Alvisi, M. Dahlin, A. Clement, and E. Wong. Zyzzyva: speculative Byzantine fault tolerance. In SOSP, 2007. Google Scholar
Digital Library
- L. Lamport. The implementation of reliable distributed multiprocess systems. Computer Networks, 2:95--114, 1978.Google Scholar
- L. Lamport. On interprocess communication. part I: Basic formalism. Distributed Computing, 1(2):77--85, 1986.Google Scholar
Cross Ref
- L. Lamport. On interprocess communication. part II: Algorithms. Distributed Computing, 1(2):86--101, 1986.Google Scholar
Cross Ref
- L. Lamport. A fast mutual exclusion algorithm. ACM Trans. Comput. Syst., 5(1):1--11, 1987. Google Scholar
Digital Library
- N. Lynch and F. Vaandrager. Forward and backward simulations I: untimed systems. Inf. Comput., 121:214--233, September 1995. Google Scholar
Digital Library
- N. A. Lynch and M. R. Tuttle. An introduction to input/output automata. CWI Quarterly, 2:219--246, 1989.Google Scholar
- O. Müller. I/O automata and beyond: Temporal logic and abstraction in Isabelle. In TPHOLs, pages 331--348, 1998. Google Scholar
Digital Library
- F. Pedone. Boosting system performance with optimistic distributed protocols. Computer, 34(12):80--86, 2001. Google Scholar
Digital Library
- A. Singh, T. Das, P. Maniatis, P. Druschel, and T. Roscoe. BFT protocols under fire. In NSDI, 2008. Google Scholar
Digital Library
- M. M. V. Luchangco and N. Shavit. On the uncontended complexity of consensus. In ICDCS, pages 45--59, 2003.Google Scholar
Cross Ref
- M. Wenzel. Isar - a generic interpretative approach to readable formal proof documents. In TPHOLs, pages 167--184, 1999. Google Scholar
Digital Library
Index Terms
Speculative linearizability
Recommendations
Speculative linearizability
PLDI '12: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and ImplementationLinearizability is a key design methodology for reasoning about implementations of concurrent abstract data types in both shared memory and message passing systems. It provides the illusion that operations execute sequentially and fault-free, despite ...
Speculative N-Way barriers
DAMP '09: Proceedings of the 4th workshop on Declarative aspects of multicore programmingSpeculative execution is an important technique that has historically been used to extract concurrency from sequential programs. While techniques to support speculation work well when computations perform relatively simple actions (e.g., reads and ...
Semantics-based asynchronous speculative locking protocol for improving the performance of read-only transactions
SpringSim '10: Proceedings of the 2010 Spring Simulation MulticonferenceSpeculative locking (SL) protocols have been proposed in the literature for improving the performance of read-only transactions (ROTs) without correctness and data currency issues. In these protocols, ROTs carry out speculative executions and update ...







Comments