SPECweb2009 Release 1.20 E-commerce Workload Design Document
The E-commerce workload in SPECweb2009 is designed to simulate a Web server that sells computer systems; this includes allowing end users to search, browse, customize, and purchase products. The workload was developed by analyzing log files of actual E-commerce sites, as well as browsing popular Web stores to gather statistics such as average page size, image sizes and access frequencies (including If-Modified-Since caching from the browser side), and capturing form data a user typically fills out when purchasing products.
By observing the requests to typical E-commerce Web stores, it is apparent that three distinct phases are involved in an E-commerce transaction; these are described below.
The first phase involves a user visiting the home page, possibly selecting a country or region (and thus being directed to the appropriate localized set of pages), selecting the type of customer (home user; small/medium/large business; local/state/federal government; education; healthcare), and being redirected to the appropriate section of products for that customer. Then the customer must select the type of product they're interested in, and then choosing a specific product model. Another possibility is using the site's search functionality to find product(s) of interest.
The dynamic pages in this phase must:
Establish a session cookie to track a user's flow within the system
Displaying a list of countries/regions on the home page
Handle search requests, which involves submitting queries to the backend, retrieving the results, and displaying them back to the user
Display customized lists of product lines, product models, and product details (depending upon the selections the user has made)
The name and purpose of each dynamic page in this phase is below.
index: Home page; user forms for region selection, searching for products; links for browsing products based upon customer type
search: Displays search results; user form for new searches
browse: Displays links for the various product lines based upon the customer type
browse_productline: Displays a table with information about each product within a product line; each product has a hyperlink to more details
productdetail: Displays a bulleted list of product details regarding an individual product; contains a hyperlink to customize the product
The second phase involves configuring a product, which involves user interaction via form submissions. First, the internal components are selected by the user (i.e. processor speed, amount of memory, hard drive size); the next page consists of further customizations, i.e. choosing the type of warranty, service, and support they want included, and finally any optional accessories (cables, printers, software, etc.).
The dynamic pages in this phase must:
Display a list of customizations for each stage mentioned above
Display a price for the item and the customizations the user has selected
This phase contains one page, but it is requested multiple times, as it returns different customizations depending upon which stage the user is in (1, 2, or 3).
customize: Displays a table with radio buttons that list possible customizations along with prices; contains a form to update the price and selections or continue to the next page (or add to cart)
The third and final phase is the actual "E-commerce" phase. Once the user has configured the product to his/her liking, the user adds the product to the shopping cart. The cart page allows users to change item quantities, remove items, or save the cart for future retrieval. When the user clicks "Checkout" from the cart, the session must become secure (this is accomplished via a redirect into HTTPS). There are multiple pages in this SSL stage: login/registration, entering billing and shipping information, payment details, verifying and submitting the order, and the confirmation page.
The dynamic pages in this phase must handle:
Cart management (displaying cart contents and line item prices, allowing user modification of quantities)
Existing user login or new user registration
Processing shipment and billing details, including validation of the submitted data
Displaying a confirmation number and shipment date when the order is confirmed
The name and function of each page is described below:
cart: Displays cart contents; form with input fields for changing cart quantities, and buttons for updating quantities, saving the cart, and checkout
login: Displays two forms, one for logging in with an existing user account, the other for registering a new user account
shipping: Displays a form with shipping address and shipping method; performs validation on fields when the form is submitted
billing: Displays a form with billing details; performs validation on fields when the form is submitted
confirm: Displays a summary of the cart, shipping and billing information, along with a button to confirm the order; once confirmed, displays a similar page with a ship date and confirmation number
SPECweb2009 is based upon a page-based model; that is, it issues a request to a dynamic page and requests all the images that would normally exist within the page as HTML image tags. A Markov chain in the harness allows simulation of the relative page request frequencies as seen from the server side. This is represented in the prime client's SPECweb_Ecommerce.config (see the STATE_n lines). Below is a diagram of the likelihood of transitioning from one state into another:
The static portion of the E-commerce file set is generated by Wafgen. Each workload has a fixed file set and a file set that scales with the number of simultaneous user sessions requested.
The fixed file set consists of two types of files: images that an HTML page would reference via <IMG> tags in the HTML (and that a browser would request upon receipt of a page), and "padding". Padding consists of random text that is inserted at the bottom of a dynamic page to bring the file size up to what was observed with real-world E-commerce Web pages (which have, among other things, JavaScript code and numerous layout tags). The page image sizes of the fixed file set were determined by analyzing and averaging file sizes observed; the sizes range from very small (less than 100 bytes) to ~22 KB; the former are usually "spacer" images used throughout the site for aligning tables, while the latter tend to be photo-quality JPEG images. The page images used in the E-commerce workload, along with their size and percentage of being cached by the browser (i.e. receiving an HTTP 304 Not Modified response from the SUT) are listed in the table below.
File Name | Size (bytes) |
304 Request % |
homepage1 | 43 | 30% |
homepage2 | 48 | 30% |
homepage3 | 54 | 30% |
homepage4 | 78 | 30% |
homepage5 | 82 | 20% |
homepage6 | 147 | 30% |
homepage7 | 166 | 30% |
homepage8 | 167 | 30% |
homepage9 | 173 | 30% |
homepage10 | 187 | 30% |
homepage11 | 592 | 30% |
homepage12 | 616 | 30% |
homepage13 | 738 | 30% |
homepage14 | 1,022 | 30% |
homepage15 | 1,186 | 30% |
homepage16 | 1,259 | 30% |
homepage17 | 1,360 | 30% |
homepage18 | 1,550 | 30% |
homepage19 | 1,593 | 30% |
homepage20 | 1,761 | 30% |
homepage21 | 1,809 | 30% |
homepage22 | 18,346 | 20% |
homepage23 | 19,207 | 20% |
homepage24 | 21,838 | 20% |
homepage25 | 22,612 | 20% |
browse1 | 443 | 30% |
browse2 | 59 | 30% |
browse3 | 62 | 30% |
browse4 | 63 | 30% |
browse5 | 71 | 30% |
browse6 | 132 | 30% |
browse7 | 175 | 30% |
browse8 | 224 | 30% |
browse9 | 243 | 30% |
browse10 | 523 | 30% |
browse11 | 917 | 30% |
browse12 | 1,167 | 30% |
browse13 | 1,347 | 30% |
browse14 | 1,402 | 30% |
browse15 | 1,480 | 30% |
browse16 | 1,504 | 30% |
browse17 | 1,621 | 30% |
browse18 | 1,738 | 30% |
browse19 | 2,208 | 20% |
browse20 | 11,918 | 20% |
browse21 | 11,972 | 20% |
browse22 | 14,408 | 20% |
browse23 | 14,525 | 20% |
browse24 | 14,748 | 20% |
browse25 | 15,750 | 20% |
browse_productline1 | 49 | 30% |
browse_productline2 | 72 | 30% |
browse_productline3 | 185 | 30% |
browse_productline4 | 1,423 | 30% |
browse_productline5 | 2,176 | 30% |
browse_productline6 | 3,140 | 10% |
browse_productline7 | 6,828 | 10% |
browse_productline8 | 8,210 | 10% |
browse_productline9 | 9,461 | 10% |
browse_productline10 | 10,633 | 10% |
browse_productline11 | 10,774 | 10% |
browse_productline12 | 11,044 | 10% |
productdetail1 | 43 | 30% |
productdetail2 | 58 | 30% |
productdetail3 | 71 | 30% |
productdetail4 | 49 | 30% |
productdetail5 | 121 | 30% |
productdetail6 | 132 | 30% |
productdetail7 | 187 | 30% |
productdetail8 | 187 | 30% |
productdetail9 | 2,154 | 10% |
productdetail10 | 3,521 | 10% |
customize1 | 43 | 30% |
customize2 | 43 | 30% |
customize3 | 49 | 30% |
customize4 | 95 | 30% |
customize5 | 114 | 30% |
customize6 | 370 | 30% |
customize7 | 1,373 | 10% |
customize8 | 1,936 | 10% |
customize9 | 1,994 | 10% |
cart1 | 43 | 0% |
cart2 | 43 | 0% |
cart3 | 43 | 0% |
cart4 | 44 | 0% |
cart5 | 44 | 0% |
cart6 | 48 | 0% |
cart7 | 50 | 0% |
cart8 | 57 | 0% |
cart9 | 61 | 0% |
cart10 | 65 | 0% |
cart11 | 82 | 0% |
cart12 | 83 | 0% |
cart13 | 91 | 0% |
cart14 | 97 | 0% |
cart15 | 98 | 0% |
cart16 | 130 | 0% |
cart17 | 136 | 0% |
cart18 | 223 | 0% |
cart19 | 243 | 0% |
cart20 | 251 | 0% |
cart21 | 274 | 0% |
cart22 | 278 | 0% |
cart23 | 280 | 0% |
cart24 | 283 | 0% |
cart25 | 319 | 0% |
cart26 | 329 | 0% |
cart27 | 362 | 0% |
cart28 | 363 | 0% |
cart29 | 385 | 0% |
cart30 | 523 | 0% |
cart31 | 621 | 0% |
cart32 | 1,848 | 0% |
cart33 | 1,980 | 0% |
cart34 | 7,894 | 0% |
cart35 | 8,240 | 0% |
cart36 | 8,255 | 0% |
cart37 | 8,484 | 0% |
cart38 | 8,886 | 0% |
cart39 | 8,914 | 0% |
cart40 | 43 | 0% |
checkout1 | 43 | 0% |
checkout2 | 43 | 0% |
checkout3 | 43 | 0% |
checkout4 | 44 | 0% |
checkout5 | 48 | 0% |
checkout6 | 59 | 0% |
checkout7 | 59 | 0% |
checkout8 | 59 | 0% |
checkout9 | 60 | 0% |
checkout10 | 65 | 0% |
checkout11 | 82 | 0% |
checkout12 | 83 | 0% |
checkout13 | 97 | 0% |
checkout14 | 102 | 0% |
checkout15 | 136 | 0% |
checkout16 | 217 | 0% |
checkout17 | 356 | 0% |
checkout18 | 385 | 0% |
checkout19 | 523 | 0% |
checkout20 | 1,648 | 0% |
checkout21 | 1,913 | 0% |
shipping1 | 61 | 0% |
shipping2 | 378 | 0% |
shipping3 | 515 | 0% |
shipping4 | 518 | 0% |
shipping5 | 922 | 0% |
billing1 | 50 | 0% |
billing2 | 159 | 0% |
billing3 | 519 | 0% |
billing4 | 897 | 0% |
billing5 | 1,069 | 0% |
search1 | 43 | 30% |
search2 | 67 | 30% |
search3 | 185 | 30% |
search4 | 205 | 30% |
search5 | 370 | 30% |
search6 | 523 | 30% |
search7 | 1,731 | 30% |
confirm1 | 43 | 0% |
confirm2 | 44 | 0% |
confirm3 | 80 | 0% |
confirm4 | 92 | 0% |
confirm5 | 97 | 0% |
confirm6 | 98 | 0% |
confirm7 | 130 | 0% |
confirm8 | 135 | 0% |
confirm9 | 135 | 0% |
confirm10 | 135 | 0% |
confirm11 | 223 | 0% |
confirm12 | 586 | 0% |
confirm13 | 1,120 | 0% |
Product images are the component of the E-commerce file set that scales as the number of requested simultaneous sessions increases. Each directory represents a product line an E-commerce store would carry. The number of directories is determined using the following formula:
directory count = 5 * SIMULTANEOUS_SESSIONS
During a benchmark run, a Zipf distribution is used to access each directory. A Zipf distribution is a distribution where the probability of selecting the nth item is proportional to 1/n. Zipf distributions are empirically associated with situations where there are many equal-cost alternatives.
Each directory consists of 10 "products", and each product has three images associated with it, which represent different views of a product a customer is interested in. Within a directory, one of the 10 products is chosen using a random distribution. Then, three image requests are made for that product, one from each class. The classes are shown in the table below:
Workload Class |
File sizes |
Stepping increment |
Class 0 |
3521 - 17795 bytes |
1586 bytes |
Class 1 |
6710 - 39020 bytes |
3590 bytes |
Class 2 |
5327 - 40526 bytes |
3911 bytes |
The sizes, frequencies, and directory scaling factor were determined from aggregating server-side Web server logs and observing client-side Web browser caches.
Copyright © 2005-2010 Standard Performance Evaluation Corporation. All rights reserved.