Java TPC-W Implementation Distribution
In an attempt to encourage widespread use of realistic, modern
application benchmarks in computer systems research, we are making our
implementation of the TPC-W benchmark publicly available. This
implementation is based on the TPC-W specification version 1.0.1. It
strays from the official benchmark specification in a few minor areas,
which are specified in documentation included with the
distribution. Credit for this implementation goes to the students of
Prof. Lipasti's Fall 1999 ECE 902 course, where most of this work took place.
This implementation is completely written in the Java programming
language, making use of the Java Servlet API and the JDBC API for
database connectivity. Running this benchmark requires the use of a
servlet-capable web server as well as a relational database system. We
have tested this implementation with the
Sun Java Web Server, and Jigsaw Web
Servers, as well as the IBM DB2
relational database system.
Amit Manjhi at
CMU has adapted this implementation of TPC-W
to run with Tomcat and Mysql. Check
here for more
Christian Plattner has adapted this implementation of TPC-W
to run with Postgresql. Check
NOTE: This link to ETHZ no longer works, so I took the liberty of creating a local copy of the document from web.archive.org: click here to read it.
Jan Kiefer has created an installer for this software,
available from http://tpcw.deadpixel.de>.
Download a copy of the TPC-W Java source
code (~700 KB gzipped tar file).
[No longer up]Browse the TPC-W bookstore website implemented by our Java servlet code (for best results, turn off cookies in your browser).
We are also performing a detailed microarchitectural characterization
of this workload. Preliminary results of our ongoing work were
presented at the 3rd Workshop On Computer Architecture Evaluation Using
Commercial Workloads (CAECW) at the January 2000 HPCA
conference in Toulouse, France.
Here are the presentation slides.
Disclaimer: Any information presented here is not in any
sense based on the official TPC-W benchmark, and is not comparable to
an official TPC result. Due to the TPC fair use policy, no-one should construe the
results presented or comments made as having anything to do with the
official TPC-W benchmark or any other TPC benchmark for that matter.
CAECW Talk Title
Characterizing a Java Implementation of TPC-W
Todd Bezenek, Trey Cain, Ross Dickson, Timothy Heil, Milo Martin, Collin McCurdy, Ravi Rajwar, Eric Weglarz, Craig Zilles, and Mikko Lipasti
Department of Electrical and Computer Engineering and Computer Sciences Department, University of Wisconsin - Madison
The Transaction Processing Performance Council (TPC) is in the process of developing a new benchmark, TPC-W, that attempts to model the application behavior of online web merchant sites. TPC-W consists of a web serving component that models online browsing and purchasing, as well as an on-line transaction processing (OLTP) component that models order processing and tracking. We implement this benchmark based on the preliminary specification that TPC has made available for public review. The remote browser emulation, web merchant application logic, and web server of our version of TPC-W are implemented completely in Java, using the Jigsaw Web Server, the servlet interface for dynamic html and forms processing, and relational database connectivity through the standard JDBC (Java Database Connectivity) interface. The OLTP component is implemented using the IBM DB2 relational database management system.
We characterize our implementation of TPC-W by running it under a full-system simulation environment in a single-tier configuration. Work is in progress to bring up our TPC-W implementation under two different instruction sets (PowerPC and SPARC) running under their respective full-system simulators (SimOS-PPC and SimICS). We will discuss the challenges we faced in bringing up a complex, networked, multitier workload implemented in a new language (Java) on a full system simulator. We will also present preliminary data characterizing the instruction stream, branch predictability, cache behavior, and multiprocessor data sharing patterns of this new workload.
Go back to Mikko's home page.
Go to the PHARM group
Last Updated: Jun-26-2012 10:41:53 CDT