YCSB stands for Yahoo! Cloud Serving Benchmark. It is the de facto database benchmark today. It supports a wide range of database types with a pluggable architecture that can be easily expanded to measure new database technologies.
The benchmark used 30 million records data volume. Each record is 1 KiB in size. We used 4 benchmark workloads provided by YCSB.
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 |
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 |
The data was imported into database using 16 threads. Unit of measurement is records/second.
The test was conducted using different number of threads. All tested databases achieved the highest throughput with 24 threads as show in the diagram below. Unit of measurement is transactions/second.
The test was conducted using different number of threads. All tested databases achieved the highest throughput with 24 threads as show in the diagram below. Unit of measurement is transactions/second.
The test was conducted using different number of threads. All tested databases achieved the highest throughput with 24 threads as show in the diagram below. Unit of measurement is transactions/second.
AntsDB has a clear lead over the other popular databases across all test categories. Internally, AntsDB has adopted a design vastly different from the traditional database engines. The locking is achieved using CPU level atomic operation. Files are organized using Log Structured Merge Tree. Index is implemented using lockless skip list. All disk I/O is done using memory mapped file. These techniques all together shows a significant advantage.
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.