Democratizing Transactional Programming
Conference paper
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.
Download
to read the full conference paper text
References
- 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)CrossRefMATHMathSciNetGoogle Scholar
- 2.Papadimitriou, C.H.: The serializability of concurrent database updates. J. ACM 26, 631–653 (1979)CrossRefMATHMathSciNetGoogle Scholar
- 3.Guerraoui, R., Kapalka, M.: Principles of Transactional Memory. Morgan&Claypool (2010)Google Scholar
- 4.Liskov, B., Scheifler, R.: Guardians and actions: linguistic support for robust, distributed programs. In: POPL, pp. 7–19 (1982)Google Scholar
- 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.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.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.Knight, T.: An architecture for mostly functional languages. In: LFP, pp. 105–112 (1986)Google Scholar
- 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.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.Diestelhorst, S., Hohmuth, M., Pohlack, M.: Sane semantics of best-effort hardware transactional memory. In: WTTM (2010)Google Scholar
- 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.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.Shavit, N., Touitou, D.: Software transactional memory. In: PODC, pp. 204–213 (1995)Google Scholar
- 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.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.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.Dragojevic, A., Guerraoui, R., Kapalka, M.: Stretching transactional memory. In: PLDI, pp. 155–165 (2011)Google Scholar
- 19.Guerraoui, R., Kapalka, M., Vitek, J.: STMBench7: a benchmark for software transactional memory. In: EuroSys, pp. 315–324 (2007)Google Scholar
- 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.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.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.Lynch, N.A.: Multilevel atomicity a new correctness criterion for database concurrency control. ACM Trans. Database Syst. 8 (1983)Google Scholar
- 24.Moss, J.E.B.: Open nested transactions: Semantics and support. In: WMPI (2006)Google Scholar
- 25.Reuter, A.: Concurrency on high-traffic data elements. In: PODS, pp. 83–92 (1982)Google Scholar
- 26.O’Neil, P.E.: The escrow transactional method. ACM Trans. Database Syst. 11, 405–430 (1986)CrossRefGoogle Scholar
- 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.Michael, M.M.: High performance dynamic lock-free hash tables and list-based sets. In: SPAA, pp. 73–82 (2002)Google Scholar
- 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.Harris, T., Marlow, S., Peyton-Jones, S., Herlihy, M.: Composable memory transactions. In: PPoPP, pp. 48–60 (2005)Google Scholar
- 31.Ghemawat, S., Gobioff, H., Leung, S.-T.: The google file system. In: SOSP (2003)Google Scholar
- 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.Scherer III, W.N., Scott, M.L.: Advanced contention management for dynamic software transactional memory. In: PODC, pp. 240–248 (2005)Google Scholar
- 34.Transactional Memory Specification Drafting Group: Draft specification of transactional language constructs for C++ (2009), http://software.intel.com/file/21569
- 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.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.Peierls, T., Goetz, B., Bloch, J., Bowbeer, J., Lea, D., Holmes, D.: Java Concurrency in Practice. Addison-Wesley (2005)Google Scholar
- 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.Herlihy, M., Koskinen, E.: Transactional boosting: A methodology for highly-concurrent transactional objects. In: PPoPP (2008)Google Scholar
- 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.Liu, Y., Spear, M.: Toxic transactions. In: Transact (2011)Google Scholar
Copyright information
© IFIP International Federation for Information Processing 2011