YCSB基准测试,AntsDB超过主流关系数据库超过100%

YCSB基准测试,AntsDB超过主流关系数据库超过100%

介绍

YCSB代表雅虎云服务基准。 它是今天事实上的数据库基准。 它支持各种具有可插拔体系结构的数据库类型,可以轻松扩展以测量新的数据库技术。

基准方法

该基准使用了3000万条记录数据量。 每条记录的大小为1 KiB。 我们使用了YCSB提供的4个基准工作负载。

加载基准 – 将3000万记录加载到空数据库中,以衡量数据导入性能。
只读基准 – 以衡量数据库的分析性能
读取繁重(90%读取10%写入) – 用于衡量用户交互式应用程序的性能。
写入较重(50%读取50%写入) – 用于测量批处理应用程序的性能。

基准设置

该基准测试是在Amazon AWS EC2 i3.4xlarge实例上执行的。 以下是系统配置的摘要。

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

加载测试

使用16个线程将数据导入数据库。 计量单位是记录/秒。

AntsDB 蚂蚁数据库 YCSB 数据加载测试

AntsDB 蚂蚁数据库 YCSB 数据加载测试

只读测试

使用不同数量的线程进行测试。所有经过测试的数据库都获得了24个线程的最高吞吐量,如下图所示。计量单位是交易/秒。

AntsDB 蚂蚁数据库 YCSB 数据只读测试

AntsDB 蚂蚁数据库 YCSB 数据只读测试

重读取查询测试

使用不同数量的线程进行测试。所有经过测试的数据库都获得了24个线程的最高吞吐量,如下图所示。计量单位是交易/秒。

AntsDB 蚂蚁数据库 YCSB 重读取查询测试

AntsDB 蚂蚁数据库 YCSB 重读取查询测试

写重测试

使用不同数量的线程进行测试。所有经过测试的数据库都获得了24个线程的最高吞吐量,如下图所示。计量单位是交易/秒。

AntsDB 蚂蚁数据库 YCSB 重写入测试

AntsDB 蚂蚁数据库 YCSB 重写入测试

结论

AntsDB在所有测试类别中明显优于其他流行数据库。在内部,AntsDB 采用了与传统数据库引擎截然不同的设计。使用 CPU 级原子操作实现锁定。使用 Log Structured Merge Tree 组织文件。使用无锁跳过列表实现索引。所有磁盘 I/O 都使用内存映射文件完成。这些技术的结合,体现了系统的显著优势。
由于资源限制,数据库服务器和测试软件都在相同的硬件上运行,因此基准程序消耗了部分系统资源。基准测试不太完美,因为实际上应用程序和数据库很可能是在不同的机器上运行。如果使用专用数据库服务器,会有更高的性能表现。

Xinwei