Advertisement

Democratizing Transactional Programming

  • Vincent Gramoli
  • Rachid Guerraoui
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7049)

Abstract

The transaction abstraction is arguably one of the most appealing middleware paradigms. It lies typically between the programmer of a concurrent or distributed application on the one hand, and the operating system with the underlying network on the other hand. It encapsulates the complex internals of failure recovery and concurrency control, significantly simplifying thereby the life of a non-expert programmer.

Yet, some programmers are indeed experts and, for those, the transaction abstraction turns out to be inherently restrictive in its classic form. We argue for a genuine democratization of the paradigm, with different transactional semantics to be used by different programmers and composed within the same application.

Keywords

Transactional Memory Failure Recovery Expert Programmer Metadata Management Software Transaction 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    Eswaran, K.P., Gray, J.N., Lorie, R.A., Traiger, I.L.: The notions of consistency and predicate locks in a database system. Commun. ACM 19, 624–633 (1976)CrossRefzbMATHMathSciNetGoogle Scholar
  2. 2.
    Papadimitriou, C.H.: The serializability of concurrent database updates. J. ACM 26, 631–653 (1979)CrossRefzbMATHMathSciNetGoogle Scholar
  3. 3.
    Guerraoui, R., Kapalka, M.: Principles of Transactional Memory. Morgan&Claypool (2010)Google Scholar
  4. 4.
    Liskov, B., Scheifler, R.: Guardians and actions: linguistic support for robust, distributed programs. In: POPL, pp. 7–19 (1982)Google Scholar
  5. 5.
    Liskov, B.: The Argus Language and System. In: Alford, M.W., Hommel, G., Schneider, F.B., Ansart, J.P., Lamport, L., Mullery, G.P., Zhou, T.H. (eds.) Distributed Systems. LNCS, vol. 190, pp. 343–430. Springer, Heidelberg (1985)Google Scholar
  6. 6.
    Almes, G.T., Black, A.P., Lazowska, E.D., Noe, J.D.: The eden system: A technical review. IEEE Trans. on Software Engineering SE-11(1), 43–59 (1985)CrossRefGoogle Scholar
  7. 7.
    Guerraoui, R., Capobianchi, R., Lanusse, A., Roux, P.: Nesting Actions through Asynchronous Message Passing: the ACS Protocol. In: Madsen, O.L. (ed.) ECOOP 1992. LNCS, vol. 615, pp. 170–184. Springer, Heidelberg (1992)CrossRefGoogle Scholar
  8. 8.
    Knight, T.: An architecture for mostly functional languages. In: LFP, pp. 105–112 (1986)Google Scholar
  9. 9.
    Herlihy, M., Moss, J.E.B.: Transactional memory: architectural support for lock-free data structures. SIGARCH Comput. Archit. News 21, 289–300 (1993)CrossRefGoogle Scholar
  10. 10.
    Dice, D., Lev, Y., Moir, M., Nussbaum, D.: Early experience with a commercial hardware transactional memory implementation. SIGPLAN Not. 44, 157–168 (2009)CrossRefGoogle Scholar
  11. 11.
    Diestelhorst, S., Hohmuth, M., Pohlack, M.: Sane semantics of best-effort hardware transactional memory. In: WTTM (2010)Google Scholar
  12. 12.
    Dalessandro, L., Carouge, F., White, S., Lev, Y., Moir, M., Scott, M.L., Spear, M.F.: Hybrid NOrec: a case study in the effectiveness of best effort hardware transactional memory. In: ASPLOS, pp. 39–52 (2011)Google Scholar
  13. 13.
    Felber, P., Riviere, E., Moreira, W., Harmanci, D., Marlier, P., Diestelhorst, S., Hohmuth, M., Pohlack, M., Cristal, A., Hur, I., Unsal, O., Stenstrom, P., Dragojevic, A., Guerraoui, R., Kapalka, M., Gramoli, V., Drepper, U., Tomic, S., Afek, Y., Korland, G., Shavit, N., Fetzer, C., Nowack, M., Riegel, T.: The velox transactional memory stack. IEEE Micro 30(5), 76–87 (2010)CrossRefGoogle Scholar
  14. 14.
    Shavit, N., Touitou, D.: Software transactional memory. In: PODC, pp. 204–213 (1995)Google Scholar
  15. 15.
    Herlihy, M., Luchangco, V., Moir, M., Scherer III, W.N.: Software transactional memory for dynamic-sized data structures. In: PODC, pp. 92–101 (2003)Google Scholar
  16. 16.
    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
  17. 17.
    Riegel, T., Felber, P., Fetzer, C.: A Lazy Snapshot Algorithm with Eager Validation. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 284–298. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  18. 18.
    Dragojevic, A., Guerraoui, R., Kapalka, M.: Stretching transactional memory. In: PLDI, pp. 155–165 (2011)Google Scholar
  19. 19.
    Guerraoui, R., Kapalka, M., Vitek, J.: STMBench7: a benchmark for software transactional memory. In: EuroSys, pp. 315–324 (2007)Google Scholar
  20. 20.
    Harmanci, D., Gramoli, V., Felber, P.: Atomic Boxes: Coordinated Exception Handling with Transactional Memory. In: Mezini, M. (ed.) ECOOP 2011. LNCS, vol. 6813, pp. 634–657. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  21. 21.
    Cascaval, C., Blundell, C., Michael, M., Cain, H.W., Wu, P., Chiras, S., Chatterjee, S.: Software transactional memory: Why is it only a research toy? Queue 6, 46–58 (2008)CrossRefGoogle Scholar
  22. 22.
    Dragojevic, A., Felber, P., Gramoli, V., Guerraoui, R.: Why STM can be more than a research toy. Commun. ACM 54(4), 70–77 (2011)CrossRefGoogle Scholar
  23. 23.
    Lynch, N.A.: Multilevel atomicity a new correctness criterion for database concurrency control. ACM Trans. Database Syst. 8 (1983)Google Scholar
  24. 24.
    Moss, J.E.B.: Open nested transactions: Semantics and support. In: WMPI (2006)Google Scholar
  25. 25.
    Reuter, A.: Concurrency on high-traffic data elements. In: PODS, pp. 83–92 (1982)Google Scholar
  26. 26.
    O’Neil, P.E.: The escrow transactional method. ACM Trans. Database Syst. 11, 405–430 (1986)CrossRefGoogle Scholar
  27. 27.
    Felber, P., Gramoli, V., Guerraoui, R.: Elastic Transactions. In: Keidar, I. (ed.) DISC 2009. LNCS, vol. 5805, pp. 93–107. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  28. 28.
    Michael, M.M.: High performance dynamic lock-free hash tables and list-based sets. In: SPAA, pp. 73–82 (2002)Google Scholar
  29. 29.
    Heller, S., Herlihy, M., Luchangco, V., Moir, M., Scherer III, W.N., Shavit, N.: A Lazy Concurrent List-Based Set Algorithm. In: Anderson, J.H., Prencipe, G., Wattenhofer, R. (eds.) OPODIS 2005. LNCS, vol. 3974, pp. 3–16. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  30. 30.
    Harris, T., Marlow, S., Peyton-Jones, S., Herlihy, M.: Composable memory transactions. In: PPoPP, pp. 48–60 (2005)Google Scholar
  31. 31.
    Ghemawat, S., Gobioff, H., Leung, S.-T.: The google file system. In: SOSP (2003)Google Scholar
  32. 32.
    Greenwald, M.: Two-handed emulation: how to build non-blocking implementations of complex data-structures using DCAS. In: PODC, pp. 260–269 (2002)Google Scholar
  33. 33.
    Scherer III, W.N., Scott, M.L.: Advanced contention management for dynamic software transactional memory. In: PODC, pp. 240–248 (2005)Google Scholar
  34. 34.
    Transactional Memory Specification Drafting Group: Draft specification of transactional language constructs for C++ (2009), http://software.intel.com/file/21569
  35. 35.
    Gramoli, V., Harmanci, D., Felber, P.: On the input acceptance of transactional memory. Parallel Processing Letters 20(1), 31–50 (2010)CrossRefMathSciNetGoogle Scholar
  36. 36.
    Harris, T.: A Pragmatic Implementation of Non-Blocking Linked-Lists. In: Welch, J.L. (ed.) DISC 2001. LNCS, vol. 2180, pp. 300–314. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  37. 37.
    Peierls, T., Goetz, B., Bloch, J., Bowbeer, J., Lea, D., Holmes, D.: Java Concurrency in Practice. Addison-Wesley (2005)Google Scholar
  38. 38.
    Ni, Y., Menon, V., Abd-Tabatabai, A.-R., Hosking, A.L., Hudson, R.L., Moss, J.E.B., Saha, B., Shpeisman, T.: Open nesting in software transactional memory. In: PPoPP (2007)Google Scholar
  39. 39.
    Herlihy, M., Koskinen, E.: Transactional boosting: A methodology for highly-concurrent transactional objects. In: PPoPP (2008)Google Scholar
  40. 40.
    Harmanci, D., Gramoli, V., Felber, P., Fetzer, C.: Extensible transactional memory testbed. J. Parallel and Distrib. Comp. 70(10), 1053–1067 (2010)CrossRefGoogle Scholar
  41. 41.
    Liu, Y., Spear, M.: Toxic transactions. In: Transact (2011)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2011

Authors and Affiliations

  • Vincent Gramoli
    • 1
  • Rachid Guerraoui
    • 1
  1. 1.EPFLSwitzerland

Personalised recommendations