Skip to main content

Towards Efficient Abstractions for Concurrent Consensus

  • Conference paper
Trends in Functional Programming (TFP 2013)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8322))

Included in the following conference series:

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).

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 49.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. 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)

    Chapter  Google Scholar 

  2. Bruni, R., Melgratti, H., Montanari, U.: Theoretical foundations for compensations in flow composition languages. In: POPL, pp. 209–220. ACM, NY (2005)

    Google Scholar 

  3. Donnelly, K., Fluet, M.: Transactional Events. In: ICFP, pp. 124–135. ACM, NY (2006)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. Harris, T., Marlow, S., Jones, S.P.L., Herlihy, M.: Composable memory transactions. Commun. ACM, 91–100 (2008)

    Google Scholar 

  6. Herlihy, M., Shavit, N.: The art of multiprocessor programming. Kaufmann (2008)

    Google Scholar 

  7. Jones, S.P.L., Gordon, A.D., Finne, S.: Concurrent Haskell. In: POPL, pp. 295–308. ACM, NY (1996)

    Google Scholar 

  8. Kshemkalyani, A.D., Singhal, M.: Distributed Computing: Principles, Algorithms, and Systems. Cambridge University Press (2008)

    Google Scholar 

  9. Lesani, M., Palsberg, J.: Communicating memory transactions. In: PPoPP 2011, pp. 157–168. ACM, NY (2011)

    Google Scholar 

  10. Marlow, S., Jones, S.P.L., Moran, A., Reppy, J.H.: Asynchronous exceptions in Haskell. In: PLDI 2001, pp. 274–285. ACM, NY (2001)

    Google Scholar 

  11. Reppy, J.H.: Concurrent programming in ML. Cambridge University Press (1999)

    Google Scholar 

  12. Spaccasassi, C.: Transactional Concurrent ML. Tech. Rep. TCD-CS-2013-01, Trinity College Dublin (2013)

    Google Scholar 

  13. 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)

    Chapter  Google Scholar 

  14. 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)

    Chapter  Google Scholar 

  15. Winskel, G.: The Formal Semantics of Programming Languages: An Introduction. Foundations of computing. MIT Press (1993)

    Google Scholar 

  16. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics