Abstract
Implementing distributed applications is a challenging task. Developers are confronted with issues like fault-tolerance, efficient synchronization mechanisms, and the correctness of the distributed code. Transactions are a simple and powerful mechanism for establishing fault-tolerance. To allow multiple processes to cooperate in a transaction we relax the isolation property. We call the new abstraction a speculation. This paper introduces a new programming model based on speculative execution. Speculations provide distributed coordinated rollback and enable optimistic execution of synchronization points. We present an operational semantics for nested speculative execution that specifies distributed speculations precisely. We also discuss two approaches to implementing support for speculations.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Gray, J., Reuter, A.: Transaction Processing: Concepts and Techniques. Morgan Kaufmann, San Francisco (1994)
Ţăpuş, C., Smith, J.D., Hickey, J.: Kernel level speculative DSM. Workshop on Distributed Shared Memory (DSM). In: CCGRID 2003. IEEE International Symposium on Cluster Computing and the Grid, Tokyo, Japan, IEEE Computer Society Press, Los Alamitos (2003)
Garcia-Molina, H., Salem, K.: Sagas. In: SIGMOD ’87. Proceedings of the 1987 ACM SIGMOD international conference on Management of data, pp. 249–259. ACM Press, New York (1987)
Ţăpuş, C.: Distributed Speculations: Providing Fault-tolerance and Improving Performance. PhD thesis, California Institute of Technology, Pasadena, CA (June 2006)
Smith, J.D., Ţăpuş, C., Hickey, J.: The mojave compiler: Providing language primitives for whole-process migration and speculation for distributed applications. To be presented at the HIPS/TOPMoDelS workshop (at IPDPS 2007) (2007)
McVoy, L., Staelin, C.: lmbench: Portable tools for performance analysis. Usenix (1996)
Prinz, A., Thalheim, B.: Operational semantics of transactions. In: CRPITS’17. Proceedings of the Fourteenth Australasian database conference on Database technologies 2003, Australian Computer Society, Inc., pp. 169–179 (2003)
Black, A.P., Cremet, V., Guerraoui, R., Odersky, M.: An equational theory for transactions. In: FST TCS 2003. Foundations of Software Technology and Theoretical Computer Science. Australian Computer Society, Inc., pp. 38–49 (2003)
Haines, N., Kindred, D., Morrisett, J.G., Nettles, S.M., Wing, J.M.: Composing first-class transactions. ACM Transactions on Programming Languages and Systems. Short Communication (1994)
Harris, T., Fraser, K.: Language support for lightweight transactions. In: Object-Oriented Programming, Systems, Languages, and Applications, pp. 388–402 (October 2003)
Ringenburg, M.F., Grossman, D.: Atomcaml: first-class atomicity via rollback. In: ICFP ’05. Proceedings of the tenth ACM SIGPLAN international conference on Functional programming, pp. 92–104. ACM Press, New York (2005)
Strom, R., Yemini, S.: Optimistic recovery in distributed systems. ACM Trans. Comput. Syst. 3(3), 204–226 (1985)
Jefferson, D.R.: Virtual time. ACM Trans. Program. Lang. Syst. 7(3), 404–425 (1985)
Qin, F., Tucek, J., Sundaresan, J., Zhou, Y.: Rx: treating bugs as allergies—a safe method to survive software failures. In: SOSP ’05. Proceedings of the twentieth ACM symposium on Operating systems principles, pp. 235–248. ACM Press, New York (2005)
Chang, F., Gibson, G.A.: Automatic i/o hint generation through speculative execution. In: OSDI ’99. Proceedings of the third symposium on Operating systems design and implementation (1999)
Thain, D., Livny, M.: The ethernet approach to grid computing. In: HPDC ’03. Proceedings of the 12th IEEE International Symposium on High Performance Distributed Computing, IEEE Computer Society Press, Los Alamitos (2003)
Lai, A.C., Falsafi, B.: Memory sharing predictor: the key to a speculative coherent dsm. In: Proceedings of the 26th annual international symposium on Computer architecture, pp. 172–183. IEEE Computer Society Press, Los Alamitos (1999)
Oplinger, J., et al.: Software and hardware for exploiting speculative parallelism with a multiprocessor. Technical report, Stanford, CA (1997)
Nightingale, E.B., Chen, P.M., Flinn, J.: Speculative execution in a distributed file system. In: SOSP ’05. Proceedings of the twentieth ACM symposium on Operating systems principles, pp. 191–205. ACM Press, New York (2005)
Hoare, C.: Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs (1985)
Hickey, J.J.: The MetaPRL Logical Programming Environment. PhD thesis, Cornell University, Ithaca, NY (January 2001)
Ţăpuş, C., Noblet, D.: Fixd: Fault detection, bug reporting, and recoverability for distributed applications. To be presented at the HIPS/TOPMoDelS workshop (at IPDPS 2007) (2007)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer Berlin Heidelberg
About this paper
Cite this paper
Ţăpuş, C., Hickey, J. (2007). A Theory of Nested Speculative Execution. In: Murphy, A.L., Vitek, J. (eds) Coordination Models and Languages. COORDINATION 2007. Lecture Notes in Computer Science, vol 4467. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-72794-1_9
Download citation
DOI: https://doi.org/10.1007/978-3-540-72794-1_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-72793-4
Online ISBN: 978-3-540-72794-1
eBook Packages: Computer ScienceComputer Science (R0)