Archives 2018

AntsDB 18.05.02 is released with new network transportation layer

AntsDB 18.05.02 comes with a brand new implementation of MySQL protocol. It is 200% faster than previous version of AntsDB in our benchmark. Below is the list of changes in this release

  • Buffering with direct memory instead of on heap Java object. It is not only faster but also saving significant system resource taken by garbage collection
  • Removed unnecessary thread switch in asynchronous network I/O handling which leads to better response time and savings on system resource
  • Optimization for very large result set. New mechanism will pause the network communication if the client can’t consume the result faster enough

Now go to the download page and try it.

YCSB benchmark, AntsDB beats mainstream relational databases by more than 100%

Introduction

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.

Benchmark Methods

The benchmark used 30 million records data volume. Each record is 1 KiB in size. We used 4 benchmark workloads provided by YCSB.

  1. Loading benchmark – loading 30 m records into an empty database. It is used to measure the data import performance.
  2. Read only benchmark – it is used to measure analytic performance of a database
  3. Read heavy (90% read 10% write) – it is used to measure the performance of user interactive applications.
  4. Write heavy (50% read 50% write) – it is used to measure the performance of batch processing applications.

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

Loading Test

The data was imported into database using 16 threads. Unit of measurement is records/second.

Read Only Test

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.

Read Heavy Test

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.

Write Heavy Test

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.

Conclusion

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.

 

AntsDB 18.04.04 release with replication support

Database replication is widely used in many organizations. It helps to bring real-time data feed to another place for safety,  integration or analytic purpose. We are glad to announce that starting from 18.04.04 release, AntsDB supports real-time data replication.

With the replication support, changes occurred in AntsDB can be replicated to another slave AntsDB/MySQL database in real-time. The replication supports both DDLs and DMLs thus target database will never be out of sync with the active one. Instruction to configure it can be found in the manual .

The new release can be found in our download page.