Skip to main content

Transactional Monitors for Concurrent Objects

  • Conference paper
ECOOP 2004 – Object-Oriented Programming (ECOOP 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3086))

Included in the following conference series:

Abstract

Transactional monitors are proposed as an alternative to monitors based on mutual-exclusion synchronization for object-oriented programming languages. Transactional monitors have execution semantics similar to mutual-exclusion monitors but implement monitors as lightweight transactions that can be executed concurrently (or in parallel on multiprocessors). They alleviate many of the constraints that inhibit construction of transparently scalable and robust applications.

We undertake a detailed study of alternative implementation schemes for transactional monitors. These different schemes are tailored to different concurrent access patterns, and permit a given application to use potentially different implementations in different contexts.

We also examine the performance and scalability of these alternative approaches in the context of the Jikes Research Virtual Machine, a state-of-the-art Java implementation. We show that transactional monitors are competitive with mutual-exclusion synchronization and can outperform lock-based approaches up to five times on a wide range of workloads.

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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.

References

  1. Agesen, O., Detlefs, D., Garthwaite, A., Knippel, R., Ramakrishna, Y.S., White, D.: An efficient meta-lock for implementing ubiquitous synchronization. In: OOPSLA 1999 [34], pp. 207–222 (1999)

    Google Scholar 

  2. Alpern, B., Attanasio, C.R., Barton, J.J., Cocchi, A., Hummel, S.F., Lieber, D., Ngo, T., Mergen, M., Shepherd, J.C., Smith, S.: Implementing Jalapeño in Java. In: OOPSLA 1999 [34], pp. 314–324 (1999)

    Google Scholar 

  3. Arnold, M., Fink, S.J., Grove, D., Hind, M., Sweeney, P.F.: Adaptive optimization in the Jalapeño JVM. In: Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, October 2000, vol. 35, pp. 47–65 (2000)

    Google Scholar 

  4. Bacon, D., Konuru, R., Murthy, C., Serrano, M.: Thin locks: Featherweight synchronization for Java. In: Proceedings of the ACM Conference on Programming Language Design and Implementation, May 1998, vol. 33, pp. 258–268 (1998)

    Google Scholar 

  5. Berger, M., Honda, K.: The Two-Phase Commitment Protocol in an Extended pi- Calculus. In: Aceto, L., Victor, B. (eds.) Electronic Notes in Theoretical Computer Science, vol. 39, Elsevier, Amsterdam (2003)

    Google Scholar 

  6. Black, A., Cremet, V., Guerraoui, R., Odersky, M.: An equational theory for transactions. Technical ReportCSE03-007, Department of Computer Science,OGISchool of Science and Engineering (2003)

    Google Scholar 

  7. Boyapati, C., Lee, R., Rinard, M.C.: Ownership types for safe programming: preventing data races and deadlocks. In: Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, November 2002, vol. 37, pp. 211–230 (2002)

    Google Scholar 

  8. Boyapati, C., Rinard, M.: A parameterized type system for race-free Java programs. In: OOPSLA 2001 [33], pp. 56–69 (2001)

    Google Scholar 

  9. Breitinger, S., Loogen, R., Ortega-Mallén, Y., Pena, R.: The Eden coordination model for distributed memory systems. In: High-Level Parallel Programming Models and Supportive Environments (HIPS), IEEE Press, Los Alamitos (1997)

    Google Scholar 

  10. Bruni, R., Laneve, C., Montanari, U.: Orchestrating transactions in the join calculus. In: Brim, L., Jančar, P., Křetínský, M., Kucera, A. (eds.) CONCUR 2002. LNCS, vol. 2421, pp. 321–337. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  11. Busi, N., Gorrieri, R., Zavattaro, G.: On the Semantics of Java Spaces. In: Formal Methods for Open Object-Based Distributed Systems IV, vol. 177, Kluwer, Dordrecht (2000)

    Google Scholar 

  12. Busi, N., Gorrieri, R., Zavattaro, G.: Temporary Data in Shared Dataspace Coordination Languages. In: Honsell, F., Miculan, M. (eds.) FOSSACS 2001. LNCS, vol. 2030, pp. 121–136. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  13. Busi, N., Zavattaro, G.: On the serializability of transactions in Java Spaces. In: Proc. of International Workshop on Concurrency and Coordination (CONCOORD 2001). Electronic Notes in Theoretical Computer Science, vol. 54, Elsevier, Amsterdam (2001)

    Google Scholar 

  14. Carey, M.J., DeWitt, D.J., Naughton, J.F.: The OO7 benchmark. In: Proceedings of the ACM International Conference on Management of Data, June 1993, vol. 22, pp. 12–21 (1993)

    Google Scholar 

  15. Choithia, T., Duggan, D.: Abstractions for fault-tolerant computing. Technical Report 2003-3, Department of Computer Science, Stevens Institute of Technology (2003)

    Google Scholar 

  16. Chrysanthis, P., Ramamritham, K.: Synthesis of extended transaction models using ACTA. ACM Transactions on Database Systems 19(3), 450–491 (1994)

    Article  Google Scholar 

  17. Clarke, D.G., Potter, J.M., Noble, J.: Ownership types for flexible alias protection. In: Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, October 1998, vol. 33, pp. 48–64 (1998)

    Google Scholar 

  18. Flanagan, C., Felleisen, M.: The semantics of future and its use in program optimizations. In: Conference Record of the ACM Symposium on Principles of Programming Languages, pp. 209–220 (1995)

    Google Scholar 

  19. Flanagan, C., Freund, S.N.: Type-based race detection for Java. In: Proceedings of the ACM Conference on Programming Language Design and Implementation, June 2000, vol. 35, pp. 219–232 (2000)

    Google Scholar 

  20. Flanagan, C., Qadeer, S.: Types for atomicity. In: Proceedings of the 2003 ACM SIGPLAN International Workshop on Types in Language Design and Implementation, pp. 1–12 (2003)

    Google Scholar 

  21. Gray, J., Reuter, A.: Transaction Processing: Concepts and Techniques. In: Data Management Systems, Morgan Kaufmann, San Francisco (1993)

    Google Scholar 

  22. Halstead Jr., R.H.: Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems 7(4), 501–538 (1985)

    Article  MATH  Google Scholar 

  23. Hammond, K., Michaelson, G. (eds.): Research Directions in Parallel Functional Programming. Springer, Heidelberg (1999)

    MATH  Google Scholar 

  24. Harris, T., Fraser, K.: Language support for lightweight transactions. In: Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, November 2003, vol. 38, pp. 388–402 (2003)

    Google Scholar 

  25. Herlihy, M., Luchangco, V., Moir, M., Scherer III., W.N.: Software transactional memory for dynamic-sized data structures. In: Proceedings of the Annual ACM Symposium on Principles of Distributed Computing, pp. 92–101 (2003)

    Google Scholar 

  26. Hosking, A.L., Moss, J.E.B.: Object fault handling for persistent programming languages: A performance evaluation. In: Proceedings of the ACM Conference on Object- Oriented Programming Systems, Languages, and Applications, October 1993, vol. 28, pp. 288–303 (1993)

    Google Scholar 

  27. Jagannathan, S., Vitek, J.: Optimistic Concurrency Semantics for Transactions in Coordination Languages. In: De Nicola, R., Ferrari, G.-L., Meredith, G. (eds.) COORDINATION 2004. LNCS, vol. 2949, pp. 183–198. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  28. Jensen, E.H., Hagensen, G.W., Broughton, J.M.: A new approach to exclusive data access in shared memory multiprocessors. Technical report, Lawrence Livermore National Laboratories (1987)

    Google Scholar 

  29. Kung, H.T., Robinson, J.T.: On optimistic methods for concurrency control. ACM Transactions on Database Systems 9(4), 213–226 (1981)

    Article  Google Scholar 

  30. Lynch, N., Merritt, M., Weihl, W., Fekete, A.: AtomicTransactions. Morgan Kaufmann, San Francisco (1994)

    Google Scholar 

  31. Michaelson, G., Scaife, N., Bristow, P., King, P.: Nested algorithmic skeletons from higher order functions. In: Parallel Algorithms and Applications. Special issue on High Level Models and Languages for Parallel Processing (2000)

    Google Scholar 

  32. Eliot, J., Moss, B.: Nested Transactions: An Approach to Reliable Distributed Computing. MIT Press, Cambridge (1985)

    Google Scholar 

  33. Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, vol. 36 (November 2001)

    Google Scholar 

  34. Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, vol. 34 (October 1999)

    Google Scholar 

  35. Rajwar, R., Goodman, J.R.: Transactional lock-free execution of lock-based programs. In: Proceedings of the ACM International Conference on Architectural Support for Programming Languages and Operating Systems, October 2002, vol. 37, pp. 5–17 (2002)

    Google Scholar 

  36. Reppy, J.: Concurrent Programming in ML. Cambridge University Press, Cambridge (1999)

    Book  Google Scholar 

  37. Rinard, M.: Effective fine-grained synchronization for automatically parallelized programs using optimistic synchronization primitives. ACM Transactions on Computer Systems 17(4), 337–371 (1999)

    Article  Google Scholar 

  38. Shavit, N., Touitou, D.: Software transactional memory. In: Proceedings of the Annual ACM Symposium on Principles of Distributed Computing, pp. 204–213 (1995)

    Google Scholar 

  39. Trinder, P.W., Hammond, K., Loidl, H.-W., Jones, S.L.P.: Algorithms + strategy = parallelism. Journal of Functional Programming 8(1), 23–60 (1998)

    Article  MATH  MathSciNet  Google Scholar 

  40. Vitek, J., Jagannathan, S., Welc, A., Hosking, A.L.: Asemantic framework for designer transactions. In: Schmidt, D. (ed.) ESOP 2004. LNCS, vol. 2986, pp. 249–263. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  41. von Praun, C., Gross, T.R.: Object race detection. In: OOPSLA 2001 [33], pp. 70–82 (2001)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Welc, A., Jagannathan, S., Hosking, A.L. (2004). Transactional Monitors for Concurrent Objects. In: Odersky, M. (eds) ECOOP 2004 – Object-Oriented Programming. ECOOP 2004. Lecture Notes in Computer Science, vol 3086. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24851-4_24

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-24851-4_24

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-22159-3

  • Online ISBN: 978-3-540-24851-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics