ACM Home Page
Please provide us with feedback. Feedback
XMem: type-safe, transparent, shared memory for cross-runtime communication and coordination
Full text PdfPdf (255 KB)
Source
Conference on Programming Language Design and Implementation archive
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation table of contents
Tucson, AZ, USA
SESSION: Session X table of contents
Pages 327-338  
Year of Publication: 2008
ISBN:978-1-59593-860-2
Also published in ...
Authors
Michal Wegiel  Univ. of California, Santa Barbara, Santa Barbara, CA, USA
Chandra Krintz  Univ. of California, Santa Barbara, Santa Barbara, CA, USA
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 128,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1375581.1375621
What is a DOI?

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
 
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
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
 
18
The DaCapo benchmarks. http://dacapobench.org.
19
 
20
 
21
T. El-Ghazawi, W. Carlson, and J. Draper. UPC Language Specifications V, 2001.
22
 
23
 
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
39
 
40
41
 
42
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
57
58
 
59
 
60
IBM WebSphere Application Server. http://www.ibm.com.
61
 
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.

Collaborative Colleagues:
Michal Wegiel: colleagues
Chandra Krintz: colleagues