openGauss MOT Sample TPC-C Benchmark
PC-C Introduction
The TPC-C Benchmark is an industry standard benchmark for measuring the performance of Online Transaction Processing (OLTP) systems. It is based on a complex database and a number of different transaction types that are executed on it. TPC-C is both a hardware‑independent and a software-independent benchmark and can thus be run on every test platform. An official overview of the benchmark model can be found at the tpc.org website here – http://www.tpc.org/default5.asp.
The database consists of nine tables of various structures and thus also nine types of data records. The size and quantity of the data records varies per table. A mix of five concurrent transactions of varying types and complexities is executed on the database, which are largely online or in part queued for deferred batch processing. Because these tables compete for limited system resources, many system components are stressed and data changes are executed in a variety of ways.
Table 1 TPC-C Database Structure
Table | Number of Entries |
Warehouse | n |
Item | 100,000 |
Stock | n x 100,000 |
District | n x 10 |
Customer | 3,000 per district, 30,000 per warehouse |
Order | Number of customers (initial value) |
New order | 30% of the orders (initial value) |
Order line | ~ 10 per order |
History | Number of customers (initial value) |
The transaction mix represents the complete business processing of an order – from its entry through to its delivery. More specifically, the provided mix is designed to produce an equal number of new-order transactions and payment transactions and to produce a single delivery transaction, a single order-status transaction and a single stock-level transaction for every ten new-order transactions.
Table 2 TPC-C Transactions Ratio
Transaction Level ≥ 4% | Share of All Transactions |
TPC-C New order | ≤ 45% |
Payment | ≥ 43% |
Order status | ≥ 4% |
Delivery | ≥ 4% (batch) |
Stock level | ≥ 4% |
There are two ways to execute the transactions – as stored procedures (which allow higher throughput) and in standard interactive SQL mode.
Performance Metric – tpm-C
The tpm-C metric is the number of new-order transactions executed per minute. Given the required mix and a wide range of complexity and types among the transactions, this metric most closely simulates a comprehensive business activity, not just one or two transactions or computer operations. For this reason, the tpm-C metric is considered to be a measure of business throughput.
The tpm-C unit of measure is expressed as transactions-per-minute-C, whereas “C” stands for TPC-C specific benchmark.
NOTE: The official TPC-C Benchmark specification can be accessed at – http://www.tpc.org/tpc_documents_current_versions/pdf/tpc-c_v5.11.0.pdf. Some of the rules of this specification are generally not fulfilled in the industry, because they are too strict for industry reality. For example, Scaling rules – (a) tpm-C / Warehouse must be >9 and <12.86 (implying that a very high warehouses rate is required in order to achieve a high tpm-C rate, which also means that an extremely large database and memory capacity are required); and (b) 10x terminals x Warehouses (implying a huge quantity of simulated clients).
System-Level Optimization
Follow the instructions in the MOT Server Optimization – x86 section. The following section describes the key system-level optimizations for deploying the openGauss database on a Huawei Taishan server and on a Euler 2.8 operating system for ultimate performance.