|
ABSTRACT
Database system designers have traditionally had trouble with the default services and interfaces provided by operating systems. In recent years, developers and enthusiasts have increasingly promoted Java as a serious platform for building data-intensive servers. Java provides a number of very helpful language features, as well as a full run-time environment reminiscent of a traditional operating system. This combination of features and community support raises the question of whether Java is better or worse at supporting data-intensive server software than a traditional operating system coupled with a weakly-typed language such as C or C++.In this paper, we summarize and discuss our experience building the Telegraph dataflow system in Java. We highlight some of the pleasures of coding with Java, and some of the pains of coding around Java in order to obtain good performance in a data-intensive server. For those issues that were painful, we present concrete suggestions for evolving Java's interfaces to better suit serious software systems development. We believe these experiences can provide insight for other designers to avoid pitfalls we encountered and to decide if Java is a suitable platform for their system.
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
|
IBM alphaWorks Home Page. http://www.alphaworks.ibm.com/, 2001.
|
| |
2
|
Java 2 Platform API Specification, JDK 1.4. http://java.sun.com/j2se/1.4/docs, 2001.
|
| |
3
|
OptimizeIt Home Page. http://www.optimizeit.com/, 2001.
|
| |
4
|
PostgreSQL. http://www.postgresql.com/, 2001.
|
| |
5
|
VTune Tool Home Page. http://developer.intel.com/vtune/analyzer/, 2001.
|
 |
6
|
|
| |
7
|
M. K. Bergman. The Deep Web: Surfacing Hidden Value, White Paper. http://www.brightplanet.com/deepcontent/index.asp/, September 2001.
|
 |
8
|
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
|
| |
9
|
G. Czajkowski, T. Mayr, P. Seshadri, and T. von Eicken. Resource Control for Java Database Extensions. 5th USENIX Conference on Object-Oriented Technologies and Systems, May 1999.
|
| |
10
|
O. Doederlein. The Java Performance Report - Part III. http://www.javalobby.org/fr/-html/frm/javalobby/features/-jpr/part3.html, September 2000.
|
 |
11
|
Michael Godfrey , Tobias Mayr , Praveen Seshadri , Thorsten von Eicken, Secure and portable database extensibility, Proceedings of the 1998 ACM SIGMOD international conference on Management of data, p.390-401, June 01-04, 1998, Seattle, Washington, United States
|
| |
12
|
|
| |
13
|
Hamilton, James. Personal Communication. Feb 2001.
|
 |
14
|
|
| |
15
|
Hong, Wei. Personal Communication. Feb 2001.
|
| |
16
|
IBM DB2. IBM DB2 Reference Manual. Version 6.1.
|
 |
17
|
M. Frans Kaashoek , Dawson R. Engler , Gregory R. Ganger , Hector M. Briceño , Russell Hunt , David Mazières , Thomas Pinckney , Robert Grimm , John Jannotti , Kenneth Mackenzie, Application performance and flexibility on exokernel systems, Proceedings of the sixteenth ACM symposium on Operating systems principles, p.52-65, October 05-08, 1997, Saint Malo, France
|
| |
18
|
D. Kegel. The C10K Problem. http://www.kegel.com/c10k.html, 2001.
|
 |
19
|
|
 |
20
|
|
 |
21
|
|
| |
22
|
D. C. Schmidt. Reactor: An Object Behavioral Pattern for Demultiplexing and Dispatching Handles for Synchronous Events. Pattern Languages of Programs Conference, August 1994.
|
 |
23
|
|
| |
24
|
M. Welsh. Non-blocking I/O for Java. http://www.cs.berkeley.edu/ mdw/proj/java-nbio, September 2001.
|
| |
25
|
M. Welsh and D. Culler. Jaguar: Enabling Efficient Communication and I/O in Java. Concurrency Practice and Experience, Dec 1999.
|
 |
26
|
Matt Welsh , David Culler , Eric Brewer, SEDA: an architecture for well-conditioned, scalable internet services, Proceedings of the eighteenth ACM symposium on Operating systems principles, October 21-24, 2001, Banff, Alberta, Canada
|
| |
27
|
N. Wyatt and A. Carlson. Cloudscape 3.6, A Technical Overview. A Cloudscape White paper, March 2001. see http://www.cloudscape.com/products/whitepapers.jsp.
|
CITED BY 10
|
|
|
|
|
|
|
|
Rob von Behren , Jeremy Condit , Feng Zhou , George C. Necula , Eric Brewer, Capriccio: scalable threads for internet services, Proceedings of the nineteenth ACM symposium on Operating systems principles, October 19-22, 2003, Bolton Landing, NY, USA
|
|
|
|
|
|
Alazel Acheson , Mason Bendixen , José A. Blakeley , Peter Carlin , Ebru Ersan , Jun Fang , Xiaowei Jiang , Christian Kleinerman , Balaji Rathakrishnan , Gideon Schaller , Beysim Sezgin , Ramachandran Venkatesh , Honggang Zhang, Hosting the .NET Runtime in Microsoft SQL server, Proceedings of the 2004 ACM SIGMOD international conference on Management of data, June 13-18, 2004, Paris, France
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|