Again, AntsDB tops at TPC-C benchmark

Again, AntsDB tops at TPC-C benchmark

Introduction

TPC Benchmark C is an on-line transaction processing (OLTP) benchmark. It is an international standard to evaluate database performance defined by the industry leaders such as Oracle, IBM and Microsoft.

The benchmark is centered around the principal activities (transactions) of an order-entry environment. These transactions include entering and delivering orders, recording payments, checking the status of orders, and monitoring the level of stock at the warehouses. While the benchmark portrays the activity of a wholesale supplier, TPC-C is not limited to the activity of any particular business segment, but, rather represents any industry that must manage, sell, or distribute a product or service.

Benchmark Methods

The benchmark used 100 warehouses with 50M records in total. TPC-C involves a mix of five concurrent transactions of different types and complexity either executed on-line or queued for deferred execution. It does so by exercising a breadth of system components associated with such environments. TPC-C performance is measured in new-order transactions per minute.  

TPC-C is an industry standard. There is a number of implementations available. In this test, we used BenchmarkSQL 4.1.1, a popular TPC-C implementation developed by the PostgreSQL community. It supports not only PostgreSQL, but also MySQL and a couple of other databases. Thus it gives us a fair comparison.

Benchmark Setup

The benchmark was performed on Amazon AWS EC2 i3.4xlarge instance. Below is the summary of the system configuration.

CPU Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz, 8 cores, 16 threads
Memory 122 GiB
Storage 1.7T * 2 NVMe SSD
Operating System CentOS 7.4.1708
Comparing Database MySQL 5.5.56, PostgreSQL 9.2.23, Database O 12.2.0.1.0, AntsDB 18.05.02
Java 1.8.0_161-b14

Database Configuration

AntsDB humpback.space.file.size=256
humpback.tablet.file.size=1073741824
MySQL innodb_file_per_table=true
innodb_file_format=Barracuda
innodb_buffer_pool_size=50G
innodb_flush_log_at_trx_commit=0
max_connections=200
PostgreSQL shared_buffers = 30GB
bgwriter_delay = 10ms
synchronous_commit = off
effective_cache_size = 60GB
Database O MEMORY_TARGET=50g

 Result

Below is the result from benchmarks, measured in tpmC – transaction per minute.

 

Conclusion

TPC-C is a more complex benchmark than YCSB. While YCSB simulates simple raw reads and writes, TPC-C weights more in complex transactions. It simulates a real world purchasing workflow. To achieve this, TPC-C implementation needs to use row locks and manual transactions to ensure data integrity. Once again, this test proves that AntsDB has a very efficient locking and transaction algorithm. 

Due to the resource constraint, both the database server and test software ran on the same hardware so that part of the system resource were consumed by the benchmarking program. It is less perfect because in reality applications and database are likely to run on different machines. However we are expecting better performance with a dedicated database server.

Xinwei