An empirical comparison of Java remote communication primitives for intra-node data transmission
Pages 2 - 11
Abstract
This paper presents a benchmarking suite that measures the performance of using sockets and eXtensible Markup Language remote procedure calls (XML-RPC) to exchange intra-node messages between Java virtual machines (JVMs). The paper also reports on an empirical study comparing sockets and XML-RPC with response time measurements from timers that use both operating system tools and Java language instrumentation. By leveraging packet filters inside the GNU/Linux kernel, the benchmark suite also calculates network resource consumption. Moreover, the framework interprets the response time results in light of memory subsystem metrics characterizing the behavior of the JVM. The empirical findings indicate that sockets perform better when transmitting small to very large objects, while XML-RPC exhibits lower response time than sockets with extremely large bulk data transfers. The experiments reveal trade-offs in performance and thus represent the first step towards determining if Java remote communication primitives can support the efficient exchange of intra-node messages.
References
[1]
R. C. Agarwal, B. Alpern, L. Carter, F. G. Gustavson, D. J. Klepacki, R. Lawrence, and M. Zubair. High-performance parallel implementations of the NAS kernel benchmarks on the IBM SP2. IBM Sys. Jour., 34(2):263--272, 1995.
[2]
M. Allman. An evaluation of XML-RPC. Perf. Eval. Rev., 30(4), 2003.
[3]
E. Armstrong. HotSpot: A new breed of virtual machine. JavaWorld, 1998.
[4]
G. C. Arnold, G. M. Kapfhammer, and R. S. Roos. Implementation and analysis of a JavaSpace supported by a relational database. In Proc. of 8th PDPTA, 2002.
[5]
B. Bershad, T. Anderson, E. Lazowska, and H. Levy. Lightweight remote procedure call. In Proc. of 12th SOSP, 1989.
[6]
W. Binder, J. Hulaas, and P. Moret. Advanced Java bytecode instrumentation. In Proc. of 5th PPPJ, 2007.
[7]
V. Bourassa and J. Zahorjan. Implementing lightweight remote procedure calls in the Mach 3 operating system. Technical Report TR-95-02-01, 1995.
[8]
P. Dasgupta, R. J. LeBlanc, Jr., M. Ahamad, and U. Ramachandran. The Clouds distributed operating system. IEEE Comp., 24(11), 1991.
[9]
D. Fiedler, K. Walcott, T. Richardson, G. M. Kapfhammer, A. Amer, and P. K. Chrysanthis. Towards the measurement of tuple space performance. Perf. Eval. Rev., 33(3), December 2005.
[10]
A. Gefflaut, T. Jaeger, Y. Park, J. Liedtke, K. J. Elphinstone, V. Uhlig, J. E. Tidswell, L. Deller, and L. Reuther. The SawMill multiserver approach. In Proc. of 9th Euro. Work., 2000.
[11]
V. Getov, P. Gray, and V. Sunderam. MPI and Java-MPI: contrasts and comparisons of low-level communication performance. In Proc. of ICS, 1999.
[12]
W. Grosso. Java RMI. O'Reilly and Associates, Inc., Sebastopol, CA, USA, 2002.
[13]
M. Harren, M. Raghavachari, O. Shmueli, M. G. Burke, R. Bordawekar, I. Pechtchanski, and V. Sarkar. XJ: facilitating XML processing in Java. In Proc. of 14th WWW, 2005.
[14]
H. Hartig, M. Hohmuth, J. Liedtke, J. Wolter, and S. Schonberg. The performance of ?-kernel-based systems. Oper. Sys. Rev., 31(5), 1997.
[15]
J. N. Herder, H. Bos, B. Gras, P. Homburg, and A. S. Tanenbaum. MINIX 3: a highly reliable, self-repairing operating system. Oper. Sys. Rev., 40(3), 2006.
[16]
J. N. Herder, H. Bros, and A. S. Tanenbaum. A lightweight method for building reliable operating systems despite unreliable device drivers. Technical Report IR-CS-018, Vrije Universiteit, 2006.
[17]
A. Heydon and M. Najork. Performance limitations of the Java core libraries. In Proc. of Java Grande, 1999.
[18]
J. Horgan, J. Power, and J. Waldron. Measurement and analysis of runtime profiling data for Java programs. In Proc. of SCAM, November, 2001.
[19]
G. Judd, M. Clement, Q. Snell, and V. Getov. Design issues for efficient implementation of MPI in Java. In Proc. of Java Grande, 1999.
[20]
P. A. Karger. Using registers to optimize cross-domain call performance. Comp. Arch. News, 17(2), 1989.
[21]
K. Kawachiya, K. Ogata, and T. Onodera. Analysis and reduction of memory inefficiencies in Java strings. In Proc. of 23rd OOPSLA, 2008.
[22]
J. Liedtke. Improving IPC by kernel design. In Proc. of 14th SOSP, 1993.
[23]
J. Liedtke. Toward real microkernels. Commun. of the ACM, 39(9), 1996.
[24]
G. Lowney. Why Intel is designing multi-core processors. In Proc. of 18th SPAA, 2006.
[25]
J. Maassen, R. van Nieuwpoort, R. D. Veldema, H. Bal, T. Kielmann, C. Jacobs, and R. Hofman. Efficient Java RMI for parallel programming. Trans. on Progr. Lang. and Sys., 23(6), 2001.
[26]
S. Oaks and L. Gong. JXTA in a Nutshell. O'Reilly and Associates, Inc., Sebastopol, CA, USA, 2002.
[27]
S. R. Radia, G. Hamilton, P. B. Kessler, and M. L. Powell. The Spring object model. In Proc. of COOTS, 1995.
[28]
S. Rhea, B. Godfrey, B. Karp, J. Kubiatowicz, S. Ratnasamy, S. Shenker, I. Stoica, and H. Yu. OpenDHT: a public DHT service and its uses. In Proc. of SIGCOMM, 2005.
[29]
V. Roubtsov. Sizeof for Java: Object sizing revisited. JavaWorld, 2003.
[30]
M. Schlansker, N. Chitlur, E. Oertli, J. Paul M. Stillwell, L. Rankin, D. Bradford, R. J. Carter, J. Mudigonda, N. Binkert, and N. P. Jouppi. High-performance Ethernet-based communications for future multi-core processors. In Proc. of ICS, 2007.
[31]
J.-M. Seigneur, G. Biegel, and C. D. Jensen. P2P with JXTA-Java pipes. In Proc. of 2nd PPPJ, 2003.
[32]
C. Tang, D. Chen, S. Dwarkadas, and M. L. Scott. Integrating remote invocation and distributed shared state. In Proc. of IPDPS, 2004.
[33]
K. Vaidyanathan, P. Lai, S. Narravula, and D. K. Panda. Optimized distributed data sharing substrate in multi-core commodity clusters: A comprehensive study with applications. In Proc. of CCGrid, 2008.
[34]
J. Waldo, G. Wyant, A. Wollrath, and S. C. Kendall. A note on distributed computing. In Proc. of Mob. Obj. Sys., 1997.
[35]
S. Wallace and K. Hazelwood. SuperPin: Parallelizing dynamic instrumentation for real-time performance. In Proc. of 5th CGO, 2007.
[36]
G. C. Wells. New and improved: Linda in Java. Scien. of Comp. Progr., 59(1--2), January 2006.
[37]
X. Zhang and M. Seltzer. HBench:Java: an application-specific benchmarking framework for Java virtual machines. In Proc. of Java Grande, 2000.
Information & Contributors
Information
Published In
Copyright © 2012 Authors.
Publisher
Association for Computing Machinery
New York, NY, United States
Publication History
Published: 09 April 2012
Published in SIGMETRICS Volume 39, Issue 4
Check for updates
Qualifiers
- Research-article
Contributors
Other Metrics
Bibliometrics & Citations
Bibliometrics
Article Metrics
- 0Total Citations
- 153Total Downloads
- Downloads (Last 12 months)1
- Downloads (Last 6 weeks)0
Reflects downloads up to 18 Jan 2025
Other Metrics
Citations
View Options
Login options
Check if you have access through your login credentials or your institution to get full access on this article.
Sign in