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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
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)
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)
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)
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)
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)
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)
Boyapati, C., Rinard, M.: A parameterized type system for race-free Java programs. In: OOPSLA 2001 [33], pp. 56–69 (2001)
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)
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)
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)
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)
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)
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)
Choithia, T., Duggan, D.: Abstractions for fault-tolerant computing. Technical Report 2003-3, Department of Computer Science, Stevens Institute of Technology (2003)
Chrysanthis, P., Ramamritham, K.: Synthesis of extended transaction models using ACTA. ACM Transactions on Database Systems 19(3), 450–491 (1994)
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)
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)
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)
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)
Gray, J., Reuter, A.: Transaction Processing: Concepts and Techniques. In: Data Management Systems, Morgan Kaufmann, San Francisco (1993)
Halstead Jr., R.H.: Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems 7(4), 501–538 (1985)
Hammond, K., Michaelson, G. (eds.): Research Directions in Parallel Functional Programming. Springer, Heidelberg (1999)
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)
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)
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)
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)
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)
Kung, H.T., Robinson, J.T.: On optimistic methods for concurrency control. ACM Transactions on Database Systems 9(4), 213–226 (1981)
Lynch, N., Merritt, M., Weihl, W., Fekete, A.: AtomicTransactions. Morgan Kaufmann, San Francisco (1994)
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)
Eliot, J., Moss, B.: Nested Transactions: An Approach to Reliable Distributed Computing. MIT Press, Cambridge (1985)
Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, vol. 36 (November 2001)
Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, vol. 34 (October 1999)
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)
Reppy, J.: Concurrent Programming in ML. Cambridge University Press, Cambridge (1999)
Rinard, M.: Effective fine-grained synchronization for automatically parallelized programs using optimistic synchronization primitives. ACM Transactions on Computer Systems 17(4), 337–371 (1999)
Shavit, N., Touitou, D.: Software transactional memory. In: Proceedings of the Annual ACM Symposium on Principles of Distributed Computing, pp. 204–213 (1995)
Trinder, P.W., Hammond, K., Loidl, H.-W., Jones, S.L.P.: Algorithms + strategy = parallelism. Journal of Functional Programming 8(1), 23–60 (1998)
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)
von Praun, C., Gross, T.R.: Object race detection. In: OOPSLA 2001 [33], pp. 70–82 (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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