|
ABSTRACT
Developers commonly build contemporary enterprise applications using type-safe, component-based platforms, such as J2EE, and architect them to comprise multiple tiers, such as a web container, application server, and database engine. Administrators increasingly execute each tier in its own managed runtime environment (MRE) to improve reliability and to manage system complexity through the fault containment and modularity offered by isolated MRE instances. Such isolation, however, necessitates expensive cross-tier communication based on protocols such as object serialization and remote procedure calls. Administrators commonly co-locate communicating MREs on a single host to reduce communication overhead and to better exploit increasing numbers of available processing cores. However, state-of-the-art MREs offer no support for more efficient communication between co-located MREs, while fast inter-process communication mechanisms, such as shared memory, are widely available as a standard operating system service on most modern platforms. To address this growing need, we present the design and implementation of XMem ? type-safe, transparent, shared memory support for co-located MREs. XMem guarantees type-safety through coordinated, parallel, multi-process class loading and garbage collection. To avoid introducing any level of indirection, XMem manipulates virtual memory mapping. In addition, object sharing in XMem is fully transparent: shared objects are identical to local objects in terms of field access, synchronization, garbage collection, and method invocation, with the only difference being that sharedto-private pointers are disallowed. XMem facilitates easy integration and use by existing communication technologies and software systems, such as RMI, JNDI, JDBC, serialization/XML, and network sockets. We have implemented XMem in the open-source, productionquality HotSpot Java Virtual Machine. Our experimental evaluation, based on core communication technologies underlying J2EE, as well as using open-source server applications, indicates that XMem significantly improves throughput and response time by avoiding the overheads imposed by object serialization and network communication.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Apache Tomcat. http://tomcat.apache.org.
|
| |
2
|
|
| |
3
|
|
| |
4
|
Godmar Back , Wilson C. Hsieh , Jay Lepreau, Processes in KaffeOS: isolation, resource management, and sharing in java, Proceedings of the 4th conference on Symposium on Operating System Design & Implementation, p.23-23, October 22-25, 2000, San Diego, California
|
| |
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.
|
 |
6
|
|
| |
7
|
|
| |
8
|
BEA WebLogic Application Server. http://www.bea.com.
|
 |
9
|
B. N. Bershad , S. Savage , P. Pardyak , E. G. Sirer , M. E. Fiuczynski , D. Becker , C. Chambers , S. Eggers, Extensibility safety and performance in the SPIN operating system, Proceedings of the fifteenth ACM symposium on Operating systems principles, p.267-283, December 03-06, 1995, Copper Mountain, Colorado, United States
|
 |
10
|
|
 |
11
|
|
| |
12
|
X. Chen and V. H. Allan. MultiJav: A distributed shared memory system based on multiple Java virtual machines. In PDPTA, 1998.
|
 |
13
|
|
| |
14
|
CORBA Specification. http://www.omg.org.
|
| |
15
|
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.
|
| |
16
|
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.
|
 |
17
|
Grzegorz Czajkowski , Laurent Daynés, Multitasking without comprimise: a virtual machine evolution, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.125-138, October 14-18, 2001, Tampa Bay, FL, USA
|
| |
18
|
The DaCapo benchmarks. http://dacapobench.org.
|
 |
19
|
David Detlefs , Christine Flood , Steve Heller , Tony Printezis, Garbage-first garbage collection, Proceedings of the 4th international symposium on Memory management, October 24-25, 2004, Vancouver, BC, Canada
[doi> 10.1145/1029873.1029879]
|
| |
20
|
Sean Dorward , Rob Pike , David Leo Presotto , Dennis Ritchie , Howard Trickey , Phil Winterbottom, Inferno, Proceedings of the 42nd IEEE International Computer Conference, p.241, February 23-26, 1997
|
| |
21
|
T. El-Ghazawi, W. Carlson, and J. Draper. UPC Language Specifications V, 2001.
|
 |
22
|
Manuel Fähndrich , Mark Aiken , Chris Hawblitzel , Orion Hodson , Galen Hunt , James R. Larus , Steven Levi, Language support for fast and reliable message-based communication in singularity OS, Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006, April 18-21, 2006, Leuven, Belgium
|
| |
23
|
Christine H. Flood , David Detlefs , Nir Shavit , Xiaolan Zhang, Parallel garbage collection for shared memory multiprocessors, Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium, p.21-21, April 23-24, 2001, Monterey, California
|
| |
24
|
|
| |
25
|
|
 |
26
|
|
 |
27
|
|
| |
28
|
HotSpot Java Virtual Machine GC. http://java.sun.com/javase/technologies/hotspot.
|
| |
29
|
Hsqldb. http://www.hsqldb.org.
|
 |
30
|
|
| |
31
|
Isolate API. JSR-121. http://jcp.org.
|
| |
32
|
Java 2 Enterprise Edition. http://java.sun.com/javaee/.
|
| |
33
|
JavaOS : A Standalone Java Environment. Sun Microsystems, 1996.
|
| |
34
|
JBoss Enterprise Middleware. http://www.jboss.com.
|
| |
35
|
JNode. http://www.jnode.org.
|
| |
36
|
R. Jones and C. Ryder. Garbage collection should be lifetime aware. In ICOOOLPS, 2006.
|
| |
37
|
|
 |
38
|
Haim Kermany , Erez Petrank, The Compressor: concurrent, incremental, and parallel compaction, Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation, June 11-14, 2006, Ottawa, Ontario, Canada
|
 |
39
|
Sheng Liang , Gilad Bracha, Dynamic class loading in the Java virtual machine, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.36-44, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
40
|
|
 |
41
|
|
| |
42
|
Mark W. MacBeth , Keith A. McGuigan , Philip J. Hatcher, Executing Java threads in parallel in a distributed-memory environment, Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research, p.16, November 30-December 03, 1998, Toronto, Ontario, Canada
|
 |
43
|
|
| |
44
|
|
| |
45
|
|
| |
46
|
Open Source J2SE. http://openjdk.java.net.
|
 |
47
|
|
 |
48
|
|
| |
49
|
M. Perry. Shared Memory Under Linux, 1999. http://fscked.org/writings/SHM/shm.html.
|
| |
50
|
M. Philippsen andM. Zenger. JavaParty?transparent remote objects in Java. Concurrency: Practice and Experience, 9(11), 1997.
|
| |
51
|
Java RMI Specification. http://java.sun.com.
|
 |
52
|
|
| |
53
|
|
| |
54
|
Java Object Serialization Specification. http://java.sun.com.
|
| |
55
|
SPEC. http://www.spec.org.
|
 |
56
|
Darko Stefanović , Matthew Hertz , Stephen M. Blackburn , Kathryn S. McKinley , J. Eliot B. Moss, Older-first garbage collection in practice: evaluation in a Java Virtual Machine, Proceedings of the 2002 workshop on Memory system performance, p.25-36, June 16-16, 2002, Berlin, Germany
|
 |
57
|
|
 |
58
|
|
| |
59
|
Thorsten von Eicken , Chi-Chao Chang , Grzegorz Czajkowski , Chris Hawblitzel , Deyu Hu , Dan Spoonhower, J-Kernel: a capability-based operating system for Java, Secure Internet programming: security issues for mobile and distributed objects, Springer-Verlag, London, 2001
|
| |
60
|
IBM WebSphere Application Server. http://www.ibm.com.
|
 |
61
|
Michal Wegiel , Chandra Krintz, The mapping collector: virtual memory support for generational, parallel, and concurrent compaction, Proceedings of the 13th international conference on Architectural support for programming languages and operating systems, March 01-05, 2008, Seattle, WA, USA
|
| |
62
|
P. R. Wilson. Uniprocessor garbage collection techniques. Technical report, Univ. of Texas, 1994.
|
| |
63
|
|
 |
64
|
|
| |
65
|
|
| |
66
|
|
| |
67
|
W. Yu and A. L. Cox. Java/DSM: A platform for heterogeneous computing. Concurrency - Practice and Experience, 9(11), 1997.
|
INDEX TERMS
Primary Classification:
D.
Software
D.3
PROGRAMMING LANGUAGES
D.3.3
Language Constructs and Features
Subjects:
Dynamic storage management
Additional Classification:
D.
Software
D.3
PROGRAMMING LANGUAGES
D.3.3
Language Constructs and Features
Subjects:
Classes and objects
D.3.4
Processors
Subjects:
Optimization;
Compilers;
Run-time environments;
Memory management (garbage collection)
General Terms:
Design,
Experimentation,
Languages,
Management,
Measurement,
Performance
Keywords:
class loading,
garbage collection,
interprocess communication,
managed runtimes,
parallel,
shared memory,
synchronization,
transparent,
type-safe
|