Advertisement

Transactions on Mergeable Objects

  • Deepthi Devaki Akkoorath
  • Annette Bieniusa
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9458)

Abstract

Destructible updates on shared objects require careful handling of concurrent accesses in multi-threaded programs. Paradigms such as Transactional Memory support the programmer in correctly synchronizing access to mutable shared data by serializing the transactional reads and writes. But under high contention, serializable transactions incur frequent aborts and limit parallelism. This can lead to a severe performance degradation.

In this paper, we propose mergeable transactions which provide a consistency semantics that allows for more scalability even under contention. Instead of aborting and re-executing, object versions from conflicting updates on shared objects are merged using data-type specific semantics. The evaluation of our prototype implementation in Haskell shows that mergeable transactions outperform serializable transactions even under low contention while providing a structured and type-safe interface.

Keywords

Concurrent programming Transactional memory Mergeable objects Relaxed consistency 

Notes

Acknowledgments

This research is supported in part by the European FP7 project 609 551 SyncFree.

References

  1. 1.
    Bieniusa, A., Middelkoop, A., Thiemann, P.: Brief announcement: actions in the twilight - concurrent irrevocable transactions and inconsistency repair. In: Proceedings of the 29th Annual ACM Symposium on Principles of Distributed Computing, PODC 2010, 25–28 July, 2010, Zurich, Switzerland, pp. 71–72 (2010)Google Scholar
  2. 2.
    Burckhardt, S., Baldassin, A., Leijen, D.: Concurrent programming with revisions and isolation types. In: Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA 2010, pp. 691–707 (2010)Google Scholar
  3. 3.
    Burckhardt, S., Leijen, D., Fähndrich, M., Sagiv, M.: Eventually consistent transactions. In: Seidl, H. (ed.) Programming Languages and Systems. LNCS, vol. 7211, pp. 67–86. Springer, Heidelberg (2012) CrossRefGoogle Scholar
  4. 4.
    Burckhardt, S., Leijen, D., Protzenko, J., Fähndrich, M.: Global sequence protocol: a robust abstraction for replicated shared state. In: Boyland, J.T. (ed.) 29th European Conference on Object-Oriented Programming (ECOOP 2015), Leibniz International Proceedings in Informatics (LIPIcs), vol. 37, pp. 568–590. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, Dagstuhl (2015). http://drops.dagstuhl.de/opus/volltexte/2015/5238
  5. 5.
    Cachopo, J., Rito-Silva, A.: Versioned boxes as the basis for memory transactions. Sci. Comput. Program. 63(2), 172–185 (2006). special issue on synchronization and concurrency in object-oriented languagesCrossRefMathSciNetzbMATHGoogle Scholar
  6. 6.
    Dice, D., Shalev, O., Shavit, N.N.: Transactional locking II. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 194–208. Springer, Heidelberg (2006) CrossRefGoogle Scholar
  7. 7.
    Driscoll, J.R., Sarnak, N., Sleator, D.D., Tarjan, R.E.: Making data structures persistent. J. Comput. Syst. Sci. 38(1), 86–124 (1989)CrossRefMathSciNetzbMATHGoogle Scholar
  8. 8.
    Fiat, A., Kaplan, H.: Making data structures confluently persistent. In: Proceedings of the Twelfth Annual ACM-SIAM Symposium on Discrete Algorithms, SODA 2001, pp. 537–546. Society for Industrial and Applied Mathematics (2001)Google Scholar
  9. 9.
    Harris, T., Marlow, S., Peyton-Jones, S., Herlihy, M.: Composable memory transactions. In: Proceedings of the Tenth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2005, pp. 48–60 (2005)Google Scholar
  10. 10.
    Hassan, A., Palmieri, R., Ravindran, B.: Optimistic transactional boosting. In: Proceedings of the 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 387–388. ACM (2014)Google Scholar
  11. 11.
    Herlihy, M., Koskinen, E.: Transactional boosting: A methodology for highly-concurrent transactional objects. In: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2008, pp. 207–216 (2008)Google Scholar
  12. 12.
    Herlihy, M.P., Wing, J.M.: Linearizability: A correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–492 (1990)CrossRefGoogle Scholar
  13. 13.
    Kuper, L., Newton, R.R.: Lvars: Lattice-based data structures for deterministic parallelism. In: Proceedings of the 2nd ACM SIGPLAN Workshop on Functional High-Performance Computing, FHPC 2013, pp. 71–84 (2013)Google Scholar
  14. 14.
    Kuper, L., Turon, A., Krishnaswami, N.R., Newton, R.R.: Freeze after writing: Quasi-deterministic parallel programming with lvars. In: Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2014, pp. 257–270 (2014)Google Scholar
  15. 15.
    Leijen, D., Fahndrich, M., Burckhardt, S.: Prettier concurrency: Purely functional concurrent revisions. In: Proceedings of the 4th ACM Symposium on Haskell, Haskell 2011, pp. 83–94. ACM, New York (2011). http://doi.acm.org/10.1145/2034675.2034686
  16. 16.
    Minh, C.C., Chung, J., Kozyrakis, C., Olukotun, K.: Stamp: Stanford transactional applications for multi-processing. In: IEEE International Symposium on Workload Characterization, IISWC 2008, pp. 35–46, September 2008Google Scholar
  17. 17.
    Narula, N., Cutler, C., Kohler, E., Morris, R.: Phase reconciliation for contended in-memory transactions. In: Proceedings of the 11th USENIX Conference on Operating Systems Design and Implementation, OSDI 2014, pp. 511–524 (2014)Google Scholar
  18. 18.
    Perelman, D., Fan, R., Keidar, I.: On maintaining multiple versions in stm. In: Proceedings of the 29th ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, PODC 2010, pp. 16–25 (2010)Google Scholar
  19. 19.
    Riegel, T.: Snapshot isolation for software transactional memory. In: Proceedings of the First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing, TRANSACT 2006 (2006)Google Scholar
  20. 20.
    Ruan, W., Liu, Y., Spear, M.: Transactional read-modify-write without aborts. ACM Trans. Archit. Code Optim. 11(4), 63:1–63:24 (2015). http://doi.acm.org/10.1145/2688904
  21. 21.
    Scott, M.L.: Sequential specification of transactional memory semantics. In: Proceedings of the First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing, June 2006Google Scholar
  22. 22.
    Shapiro, M., Preguiça, N., Baquero, C., Zawirski, M.: A comprehensive study of Convergent and Commutative Replicated Data Types. Rapport de recherche RR-7506, INRIA, January 2011Google Scholar
  23. 23.
    Shapiro, M., Preguiça, N., Baquero, C., Zawirski, M.: Conflict-free replicated data types. In: Défago, X., Petit, F., Villain, V. (eds.) SSS 2011. LNCS, vol. 6976, pp. 386–400. Springer, Heidelberg (2011) CrossRefGoogle Scholar
  24. 24.
    Zawirski, M., Bieniusa, A., Balegas, V., Duarte, S., Baquero, C., Shapiro, M., Preguiça, N.: SwiftCloud: Fault-Tolerant Geo-Replication Integrated all the Way to the Client Machine. Research Report RR-8347, October 2013Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  1. 1.University of KaiserslauternKaiserslauternGermany

Personalised recommendations