skip to main content
research-article

Cross-language, type-safe, and transparent object sharing for co-located managed runtimes

Published:17 October 2010Publication History
Skip Abstract Section

Abstract

As software becomes increasingly complex and difficult to analyze, it is more and more common for developers to use high-level, type-safe, object-oriented (OO) programming languages and to architect systems that comprise multiple components. Different components are often implemented in different programming languages. In state-of-the-art multicomponent, multi-language systems, cross-component communication relies on remote procedure calls (RPC) and message passing. As components are increasingly co-located on the same physical machine to ensure high utilization of multi-core systems, there is a growing potential for using shared memory for cross-language cross-runtime communication.

We present the design and implementation of Co-Located Runtime Sharing (CoLoRS), a system that enables cross-language, cross-runtime type-safe, transparent shared memory. CoLoRS provides object sharing for co-located OO runtimes for both static and dynamic languages. CoLoRS defines a language-neutral object/classmodel,which is a static-dynamic hybrid and enables class evolution while maintaining the space/time efficiency of a static model. CoLoRS uses type mapping and class versioning to transparently map shared types to private types. CoLoRS also contributes a synchronization mechanism and a parallel, concurrent, on-the-fly GC algorithm, both designed to facilitate cross-language cross-runtime object sharing.

We implement CoLoRS in open-source, production-quality runtimes for Python and Java. Our empirical evaluation shows that CoLoRS extensions impose low overhead. We also investigate RPC over CoLoRS and find that using shared memory to implement co-located RPC significantly improves both communication throughput and latency by avoiding data structure serialization.

References

  1. }}Apache Cassandra Project. http://cassandra.apache.org.Google ScholarGoogle Scholar
  2. }}Y. Aridor, M. Factor, and A. Teperman. cJVM: A single system image of a JVM on a cluster. In ICPP, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. }}J. Armstrong. Erlang -- a survey of the language and its industrial applications. In 9th ESIAP, 1996.Google ScholarGoogle Scholar
  4. }}J. Armstrong, R. Virding, C. Wikstrom, and M. Williams. Concurrent Programming in Erlang. Prentice-Hall, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. }}G. Back, P. Tullmann, L. Stoller,W. C. Hsieh, and J. Lepreau. Java operating systems: Design and implementation. Technical report, Univ. of Utah, 1998.Google ScholarGoogle Scholar
  6. }}G. Back, W. C. Hsieh, and J. Lepreau. Processes in KaffeOS: Isolation, resource management, and sharing in Java. In OSDI, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. }}B. N. Bershad, T. E. Anderson, E. D. Lazowska, and H. M. Levy. Lightweight remote procedure call. ACM Trans. Comput. Syst., 8(1), 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. }}B. N. Bershad, S. Savage, P. Pardyak, E. G. Sirer, M. E. Fiuczynski, D. Becker, C. Chambers, and S. J. Eggers. Extensibility, safety and performance in the SPIN operating system. In SOSP, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. }}H.-J. Boehm and S. V. Adve. Foundations of the C++ concurrency memory model. In PLDI, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. }}X. Chen and V. H. Allan. MultiJav: A distributed shared memory system based on multiple Java virtual machines. In PDPTA, 1998.Google ScholarGoogle Scholar
  11. }}N. Chohan, C. Bunch, S. Pang, C. Krintz, N. Mostafa, S. Soman, and R. Wolski. AppScale: Scalable and Open AppEngine Application Development and Deployment. In ICCC, 2009.Google ScholarGoogle Scholar
  12. }}Computer Language Benchmarks Game. Language Performance Comparisons. http://shootout.alioth.debian.org/.Google ScholarGoogle Scholar
  13. }}CORBA Specification. http://www.omg.org.Google ScholarGoogle Scholar
  14. }}D. E. Culler, A. C. Arpaci-Dusseau, S. C. Goldstein, A. Krishnamurthy, S. Lumetta, T. von Eicken, and K. A. Yelick. Parallel programming in Split-C. In SC, 1993.Google ScholarGoogle Scholar
  15. }}G. Czajkowski and L. Daynes. Multitasking without compromise: A virtual machine evolution. In OOPSLA, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. }}D. Doligez and G. Gonthier. Portable, unobtrusive garbage collection for multiprocessor systems. In POPL, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. }}D. Doligez and X. Leroy. A concurrent, generational garbage collector for a multithreaded implementation of ml. In POPL, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. }}T. Domani, E. K. Kolodner, and E. Petrank. A generational on-the-fly garbage collector for Java. SIGPLAN Not., 35(5), 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. }}T. Domani, E. K. Kolodner, E. Lewis, E. E. Salant, K. Barabash, I. Lahan, Y. Levanoni, E. Petrank, and I. Yanorer. Implementing an on-the-fly garbage collector for Java. SIGPLAN Not., 36(1), 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. }}S. Dorward, R. Pike, D. L. Presotto, D. Ritchie, H. Trickey, and P. Winterbottom. Inferno. In COMPCON, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. }}T. El-Ghazawi, W. Carlson, and J. Draper. UPC Language Specifications V, 2001. http://upc.gwu.edu.Google ScholarGoogle Scholar
  22. }}M. Fahndrich, M. Aiken, C. Hawblitzel, O. Hodson, G. C. Hunt, J. R. Larus, and S. Levi. Language support for fast and reliable message-based communication in Singularity OS. In EuroSys, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. }}R. T. Fielding. Architectural styles and the design of network-based software architectures. Technical report, Univ. of California, Irvine, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. }}GCJ. The GNU Compiler for the Java Programming Language. http://gcc.gnu.org/java.Google ScholarGoogle Scholar
  25. }}M. Golm, M. Felser, C. Wawersich, and J. Kleinoder. The JX operating system. In USENIX Annual Technical Conference, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. }}Hadoop File System (HDFS). http://hadoop.apache.org.Google ScholarGoogle Scholar
  27. }}G. C. Hunt and J. R. Larus. Singularity: Rethinking the software stack. Operating Systems Review, 41(2):37--49, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. }}JavaOS : A Standalone Java Environment. Sun Microsystems, 1996.Google ScholarGoogle Scholar
  29. }}JNode. http://www.jnode.org.Google ScholarGoogle Scholar
  30. }}M. J. M. Ma, C.-L. Wang, and F. C. M. Lau. JESSICA: Java-enabled single-system-image computing architecture. J. Parallel Distrib. Comput., 60(10), 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. }}Occam Programming Manual. 1984. Inmos Corporation. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. }}Protocol Buffers. Google's Data Interchange Format. http://code.google.com/p/protobuf.Google ScholarGoogle Scholar
  33. }}K. Russell and D. Detlefs. Eliminating synchronizationrelated atomic operations with biased locking and bulk rebiasing. SIGPLAN Not., 41(10), 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. }}F. B. Schneider, G. Morrisett, and R. Harper. A languagebased approach to security. Lecture Notes in CS, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. }}M. Slee, A. Agarwal, and M. Kwiatkowski. Thrift: Scalable Cross-Language Services Implementation. 2007.Google ScholarGoogle Scholar
  36. }}T. von Eicken, C.-C. Chang, G. Czajkowski, C. Hawblitzel, D. Hu, and D. Spoonhower. J-Kernel: A capability-based operating system for Java. In Secure Internet Programming, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. }}M. Wegiel and C. Krintz. XMem: Type-Safe, Transparent, Shared Memory for Cross-Runtime Communication and Coordination. In PLDI, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. }}N. Wirth and J. Gutknecht. Project Oberon: the design of an operating system and compiler. ACM Press/Addison-Wesley, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Cross-language, type-safe, and transparent object sharing for co-located managed runtimes

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 45, Issue 10
          OOPSLA '10
          October 2010
          957 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/1932682
          Issue’s Table of Contents
          • cover image ACM Conferences
            OOPSLA '10: Proceedings of the ACM international conference on Object oriented programming systems languages and applications
            October 2010
            984 pages
            ISBN:9781450302036
            DOI:10.1145/1869459

          Copyright © 2010 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 17 October 2010

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader