skip to main content
research-article

An empirical comparison of Java remote communication primitives for intra-node data transmission

Published: 09 April 2012 Publication History

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.

Comments

Information & Contributors

Information

Published In

cover image ACM SIGMETRICS Performance Evaluation Review
ACM SIGMETRICS Performance Evaluation Review  Volume 39, Issue 4
March 2012
134 pages
ISSN:0163-5999
DOI:10.1145/2185395
Issue’s Table of Contents

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

  • 0
    Total Citations
  • 153
    Total 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

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media