Skip to main content

Optimizing the Concurrent Execution of Locks and Transactions

  • Conference paper

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

Abstract

Transactional memory (TM) is a promising alternative to mutual exclusion. In spite of this, it may be unrealistic for TM programs to be devoid of locks due to their abundant use in legacy software systems. Consequently, for TMs to be practical they may need to manage the interaction of transactions and locks when they access the same shared-memory. This paper presents two algorithms, one coarse-grained and one fine-grained, that improve the state-of-the-art performance for TMs that support the concurrent execution of locks and transactions. We also discuss the programming language constructs that are necessary to implement such algorithms and present analyses that compare and contrast our approach with prior work. Our analyses demonstrate that, (i) in general, our proposed coarse- and fine-grained algorithms improve program concurrency but (ii) an algorithm’s concurrent throughput potential does not always lead to realized performance gains.

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

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abdelkhalek, A., Bilas, A.: Parallelization and performance of interactive multiplayer game servers. In: IPDPS (2004)

    Google Scholar 

  2. Bloch, J.: Effective Java, 2nd edn. The Java Series. Prentice Hall PTR, Upper Saddle River (2008)

    Google Scholar 

  3. Dijkstra, E.W.: Solution of a problem in concurrent programming control. Commun. ACM 8(9), 569 (1965)

    Article  Google Scholar 

  4. Gottschlich, J.E., Siek, J.G., Vachharajani, M., Winkler, D.Y., Connors, D.A.: An efficient lock-aware transactional memory implementation. In: Proceedings of the International ACM Workshop on ICOOOLPS (July 2009)

    Google Scholar 

  5. Gottschlich, J.E., Vachharajani, M., Siek, J.G.: An efficient software transactional memory using commit-time invalidation. In: Proceedings of the International Symposium on Code Generation and Optimization, CGO (April 2010)

    Google Scholar 

  6. Herlihy, M., Moss, J.E.B.: Transactional memory: Architectural support for lock-free data structures. In: Proceedings of the International Symposium on Computer Architecture (May 1993)

    Google Scholar 

  7. Moore, K.E., Bobba, J., Moravan, M.J., Hill, M.D., Wood, D.A.: LogTM: Log-based transactional memory. In: HPCA, pp. 254–265. IEEE Computer Society (February 2006)

    Google Scholar 

  8. Rajwar, R., Bernstein, P.A.: Atomic transactional execution in hardware: A new high performance abstraction for databases. In: Workshop on High Performance Transaction Systems (2003)

    Google Scholar 

  9. Rajwar, R., Goodman, J.R.: Speculative lock elision: enabling highly concurrent multithreaded execution. In: MICRO, pp. 294–305. ACM/IEEE (2001)

    Google Scholar 

  10. Rossbach, C.J., Hofmann, O.S., Porter, D.E., Ramadan, H.E., Aditya, B., Witchel, E.: Txlinux: using and managing hardware transactional memory in an operating system. In: SOSP, pp. 87–102. ACM (2007)

    Google Scholar 

  11. Shavit, N., Touitou, D.: Software transactional memory. In: Proceedings of the Principles of Distributed Computing (August 1995)

    Google Scholar 

  12. Spear, M.F., Marathe, V.J., Scherer III, W.N., Scott, M.L.: Conflict Detection and Validation Strategies for Software Transactional Memory. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 179–193. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  13. Spear, M.F., Michael, M.M., Scott, M.L.: Inevitability mechanisms for software transactional memory. In: Proceedings of the 3rd ACM SIGPLAN Workshop on Transactional Computing (February 2008)

    Google Scholar 

  14. Usui, T., Behrends, R., Evans, J., Smaragdakis, Y.: Adaptive locks: Combining transactions and locks for efficient concurrency. Journal of Parallel and Distributed Computing, 1009–1023 (2010)

    Google Scholar 

  15. Volos, H., Goyal, N., Swift, M.M.: Pathological interaction of locks with transactional memory. In: TRANSACT (February 2008)

    Google Scholar 

  16. Welc, A., Saha, B., Adl-Tabatabai, A.-R.: Irrevocable transactions and their applications. In: SPAA (2008)

    Google Scholar 

  17. Ziarek, L., Welc, A., Adl-Tabatabai, A.-R., Menon, V., Shpeisman, T., Jagannathan, S.: A Uniform Transactional Execution Environment for Java. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 129–154. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  18. Zilles, C., Flint, D.: Challenges to providing performance isolation in transactional memories. In: Proceedings of the Fourth Workshop on Duplicating, Deconstructing, and Debunking, pp. 48–55 (June 2005)

    Google Scholar 

  19. Zyulkyarov, F., Gajinov, V., Unsal, O.S., Cristal, A., Ayguadé, E., Harris, T., Valero, M.: Atomic quake: using transactional memory in an interactive multiplayer game server. In: PPoPP, pp. 25–34. ACM, New York (2009)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Gottschlich, J.E., Chung, J. (2013). Optimizing the Concurrent Execution of Locks and Transactions. In: Rajopadhye, S., Mills Strout, M. (eds) Languages and Compilers for Parallel Computing. LCPC 2011. Lecture Notes in Computer Science, vol 7146. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-36036-7_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-36036-7_9

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-36035-0

  • Online ISBN: 978-3-642-36036-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics