Already a member?
Sign in
| Version | User | Scope of changes |
|---|---|---|
| Mar 29 2007, 6:39 PM EDT (current) | dave_jaffe | 43 words added, 48 words deleted |
| Mar 29 2007, 6:13 PM EDT | dave_jaffe | 5 words added, 9 words deleted |
Changes
Key: Additions Deletions
ds2_schema.txt
DVD Store Release 2 Database Schema
| Table | Columns | Number of Rows (Large database) |
| Customers | CUSTOMERID FIRSTNAME LASTNAME ADDRESS1 ADDRESS2 CITY STATE ZIP COUNTRY REGION PHONE CREDITCARDTYPE CREDITCARD CREDITCARDEXPIRATION USERNAME PASSWORD AGE INCOME GENDER | 200 Million |
| Orders | ORDERID ORDERDATE CUSTOMERID NETAMOUNT TAX TOTALAMOUNT | 120 Million |
| Orderlines | ORDERLINEID ORDERID PROD_ID QUANTITY ORDERDATE | 600 Million |
| Cust_Hist | CUSTOMERID ORDERID PROD_ID | 600 Million |
| Products | PROD_ID CATEGORY TITLE ACTOR PRICE SPECIAL COMMON_PROD_ID | 1 Million |
| Inventory | PROD_ID QUAN_IN_STOCK SALES | 1 Million |
| Reorder | PROD_ID DATE_LOW QUAN_LOW DATE_REORDERED QUAN_REORDERED DATE_EXPECTED | variable |
| Categories | CATEGORY CATEGORYNAME | 16 |
Orderlines ORDERLINEID 600 millionORDERIDPROD_IDQUANTITYORDERDATECust_Hist CUSTOMERID 600 millionORDERIDPROD_ID
Products PROD_ID 1 millionCATEGORYTITLEACTORPRICESPECIALCOMMON_PROD_ID
Inventory PROD_ID 1 millionQUAN_IN_STOCKSALES
Reorder PROD_ID variableDATE_LOWQUAN_LOWDATE_REORDEREDQUAN_REORDERED
DATE_EXPECTED
Categories CATEGORY 16CATEGORYNAME
Stored Procedures
-----------------
The DVD Store database is managed through six stored procedures. The first two are used during the login phase. If the customer is a returning customer, Login is used to retrieve the customer's information, in particular the CUSTOMERID. If the customer is a new customer, New_customer is used to create a new row in the Customers table with the user's data. Following the login phase the customer might search for a DVD by category, actor or title. These are implemented by Browse_by_category, Browse_by_actor and Browse_by_title, respectively. Finally, after the user has made his or her selections, the Purchase stored procedure is called to complete the transaction.
The stored procedures of the DS2 application have features to better model today's online stores. During Login, for example, the user's previous order (up to ten titles) is reported, along with titles that other customers who like those titles have recommended. The Browse_by_category returns those titles in the specified category that are currently on sale. And the Purchase stored procedure now checks the QUAN_IN_STOCK field from the Inventory table to see if a title is available. This is done using a database transaction, so that if there is insufficient quantity to fill the order neither the QUAN_IN_STOCK data is updated nor is a new record written to the ORDERS table.
Driver Program
--------------
A multi-threaded driver program, included with DS2, is used to simulate an order entry or online transaction processing (OLTP) workload. Each thread of the OLTP driver application connects to the database (either directly or through a web layer) and makes a series of stored procedure calls that simulates users logging in, browsing and purchasing. Each completed sequence by a customer is counted as a single order. The driver measures order rates and the average response time to complete each order. Several tunable parameters are used to control the application and are described below.
| Parameter | Description Default --------- ----------- ------- | Default |
| n_threads | Number of simultaneous connections to the database | 1 |
| delay_time | Amount of time a thread waits between orders | 0 seconds |
| pct_returning | Percent of users that are returning users | 80% |
| pct_newcustomers | Percent of users that are new users | 20% |
| n_searches | Number of searches per order | Range: 1 - 5 Average: 3 |
| search_batch_size | Number of items returned in each search | Range: 1 - 9 Average: 5 |
| n_line_items | Number of items purchased | Range: 1 - 9 Average: 5 |
| net_amount | Total amount of purchase | Range: $0.01 - $400.00 Average: $200.00 |
So with the default settings, the average order consists of 1 login/new customer create step, 3 searches, and 1 purchase. The delay_time may be set to a typical user read/think/type time for an order so that the number of threads then corresponds to the number of simultaneous users. Or an extremely small delay is used so that the database connections are kept full, simulating what happens in a real multi-tiered application where some small number of connections are pooled and shared among the web servers
that may be handling thousands of simultaneous customers. Thus a realistic simulation of database activity is achieved without needing to model thousands of users.
<dave_jaffe@dell.com> and <todd_muirhead@dell.com> 12/16/05
Return to DVD Store main page

