Description
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
Attachments
Issue Links
- is related to
-
DERBY-2278 Add a generic utility tool to drive the Order Entry load phase.
- Closed
- relates to
-
DERBY-2267 Add tests for last eight consistency requirements listed in Section 3.3 in TPC-C specification for the Order Entry benchmark.
- Open
-
DERBY-2266 Add Order Entry load using the bulkinsert vti.
- Closed