Add Order Entry application/system/performance test/toolkit
-----------------------------------------------------------
Key: DERBY-1987
URL: http://issues.apache.org/jira/browse/DERBY-1987
Project: Derby
Issue Type: Test
Components: Performance, Test
Reporter: Daniel John Debrunner
Priority: Minor
Order Entry (OE) is an OLTP application/toolkit which is based upon the TPC-C
specification,
but is not claiming to be a valid implementation. The TPC-C specification is
used mainly for
the database schema & population rules and the logic of the business
transactions.
http://www.tpc.org/tpcc/
OE is set up so that the driving & display of the business transactions is
separated from the actual implementation,
which then allows different implementations to compare performance of Derby
features. In all cases the implementations
would perform the logical functionality required by the TPC-C, but need not be
strict implementations. As an example
the new order number is obtained in a defined way in TPC-C, but Derby could use
generated keys to perform the
same logical function. Testing the two ways would lead to see if there were
performance problems with generated keys.
Examples of the possible implementations of the business transactions are:
- direct - client executes SQL statements directly holding onto
PreparedStatements for the lifetime of the client)
- procedure - client executes a procedure per business transaction
- EOD - implementation using JDBC 4^H5? EOD
- updateable ResultSets
- positioned updates
- etc.
Other options include
- use of triggers
- use of generated keys
- etc.
Possible values for the display (results of the transaction)
- nothing
- text
- HTML for servlets/JSPs
- etc.
Also the loading of the data could support different options:
- load with/without contraints in place
- load using INSERT statements
- load using import
- load using import with a ResultSet class.
OE allows the amount of data loaded initially to be varied very easily, just by
setting the warehouse
scale factor, so a warehouse=1 creates a database of size N, and warehouse=100
a database of size 100N (roughly).
This allows databases in the range 10-100Gb to be easily created.
The general setup would that OE could be used as a function test, performance
test, or stress test,
so it's seen as a toolkit.
I hope also that the OE could be expanded beyond the TPC-C spec, for example:
- adding images (BLOBs) and descriptions (CLOBs) to the product ITEM table.
- adding triggers to send-email on various actions.
These additions would be intended to test Derby functionality in a "real-world"
OLTP application.
The top-level package under java/testing would be
org.apache.derbyTesting.systemTests.oe
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira