Abstract
Consensus is an often occurring problem in concurrent and distributed programming. We present a programming language with simple semantics and build-in support for consensus in the form of communicating transactions. We motivate the need for such a construct with a characteristic example of generalized consensus which can be naturally encoded in our language. We then focus on the challenges in achieving an implementation that can efficiently run such programs. We setup an architecture to evaluate different implementation alternatives and use it to experimentally evaluate runtime heuristics. This is the basis for a research project on realistic programming language support for consensus.
Student project paper (primarily the work of the first author).
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
Bruni, R., Melgratti, H., Montanari, U.: Nested commits for mobile calculi: Extending join. In: Levy, J.-J., Mayr, E.W., Mitchell, J.C. (eds.) Expl. New Frontiers of Theor. Informatics. IFIP, vol. 155, pp. 563–576. Springer, Heidelberg (2004)
Bruni, R., Melgratti, H., Montanari, U.: Theoretical foundations for compensations in flow composition languages. In: POPL, pp. 209–220. ACM, NY (2005)
Donnelly, K., Fluet, M.: Transactional Events. In: ICFP, pp. 124–135. ACM, NY (2006)
Field, J., Varela, C.A.: Transactors: a programming model for maintaining globally consistent distributed state in unreliable environments. In: POPL, pp. 195–208. ACM, NY (2005)
Harris, T., Marlow, S., Jones, S.P.L., Herlihy, M.: Composable memory transactions. Commun. ACM, 91–100 (2008)
Herlihy, M., Shavit, N.: The art of multiprocessor programming. Kaufmann (2008)
Jones, S.P.L., Gordon, A.D., Finne, S.: Concurrent Haskell. In: POPL, pp. 295–308. ACM, NY (1996)
Kshemkalyani, A.D., Singhal, M.: Distributed Computing: Principles, Algorithms, and Systems. Cambridge University Press (2008)
Lesani, M., Palsberg, J.: Communicating memory transactions. In: PPoPP 2011, pp. 157–168. ACM, NY (2011)
Marlow, S., Jones, S.P.L., Moran, A., Reppy, J.H.: Asynchronous exceptions in Haskell. In: PLDI 2001, pp. 274–285. ACM, NY (2001)
Reppy, J.H.: Concurrent programming in ML. Cambridge University Press (1999)
Spaccasassi, C.: Transactional Concurrent ML. Tech. Rep. TCD-CS-2013-01, Trinity College Dublin (2013)
de Vries, E., Koutavas, V., Hennessy, M.: Communicating Transactions. In: Gastin, P., Laroussinie, F. (eds.) CONCUR 2010. LNCS, vol. 6269, pp. 569–583. Springer, Heidelberg (2010)
de Vries, E., Koutavas, V., Hennessy, M.: Liveness of Communicating Transactions. In: Ueda, K. (ed.) APLAS 2010. LNCS, vol. 6461, pp. 392–407. Springer, Heidelberg (2010)
Winskel, G.: The Formal Semantics of Programming Languages: An Introduction. Foundations of computing. MIT Press (1993)
Ziarek, L., Schatz, P., Jagannathan, S.: Stabilizers: a modular checkpointing abstraction for concurrent functional programs. In: Reppy, J.H., Lawall, J.L. (eds.) ICFP, pp. 136–147. ACM, NY (2006)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Spaccasassi, C., Koutavas, V. (2014). Towards Efficient Abstractions for Concurrent Consensus. In: McCarthy, J. (eds) Trends in Functional Programming. TFP 2013. Lecture Notes in Computer Science, vol 8322. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45340-3_5
Download citation
DOI: https://doi.org/10.1007/978-3-642-45340-3_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-45339-7
Online ISBN: 978-3-642-45340-3
eBook Packages: Computer ScienceComputer Science (R0)