在龙芯上探索数据库虚拟化

在龙芯上探索数据库虚拟化

数据库虚拟化

云计算是未来,而虚拟化技术则是云计算的基石。在过去10年中,我们见证了虚拟化技术的蓬勃发展。目前,虚拟化技术从最早的硬件虚拟化进入了到新的阶段——软件虚拟化,其中比较流行的容器技术实际就是操作系统的虚拟化。

最近,我们荣幸得到龙芯的邀请,在龙芯SB平台上做了兼容性测试。在此,首先感谢龙芯的朋友们的邀请。

测试标准

与国际上最为流行的开源数据库 MySQL 高度兼容是 AntsDB 的一大特性之一。因此,本次基准测试以 MySQL 作为比照对象。为了保持测试的可比较性,AntsDB 和 MySQL 均使用相同硬件,单节点下进行测试。

本次测试分别使用业界公认的 TPC-C 与 YCSB 两种方法开展:

TPC-C 基准测试是一个在线事务处理基准。它是一个评估数据库性能的国际标准,主要由ORACLE,IBM、微软集体制定。TPC-C 基准测试以订单输入环境的主要活动(交易)为中心。 这些交易包括输入和交付订单,记录付款,检查订单状态以及监控仓库的库存水平。

YCSB 全称为 Yahoo! Cloud Serving Benchmark,是目前业界主流数据库性能评测之一。YCSB 由雅虎开发,不仅安装简单,还可以自由扩展测试数据类型和支持的数据库产品。通过对其进行 扩展,YCSB可以支持对多个不同的数据库产品进行性能测试,通过测试结果可以了解数据库在 并发写入、读取、更新时的一些指标,比如吞吐量、操作延迟等。

测试环境

处理器 Loongson-3B 1500MHz,2路,16核
内存 32 G RAM
存储 2TB 机械硬盘
操作系统 Red Hat Enterprise Linux 7
Java Java 8

AntsDB 配置参数

humpback.space.file.size=1G
humpback.tablet.file.size=1G
AntsDB Java 配置参数
-server -Xms2G -Xmx2G -XX:+PerfDisableSharedMem

MySQL 配置参数

default-storage-engine=innodb
max_allowed_packet=32M
innodb_buffer_pool_size=30G
innodb_flush_log_at_trx_commit=0
skip-grant-tables
lower_case_table_names=1
max_connection=300

TPC-C 测试方法

基准测试使用了100个仓库,总共有5000万条记录。 TPC-C涉及五种不同类型和复杂性的并发事务的混合,这些事务要么在线执行,要么排队等待延迟执行。 它通过运用与这种环境相关的广泛系统组件来实现。 TPC-C性能以每分钟的新订单交易来衡量。

TPC-C是行业标准。 有许多不同的实现方法可用。 在此测试中,我们使用了BenchmarkSQL 4.1.1,这是PostgreSQL社区开发的一种流行的TPC-C实现。 它不仅支持PostgreSQL,还支持MySQL和其他几个数据库。 因此它可以作为一个公平的比较。

TPC-C 测试结果

两者差距在10%以内。

YCSB 测试方法

本次测试使用 10,000,000 条记录的数据量,每条记录有 1 KiB 数据量,采用了 4 种测试方法。

  • 载入测试 – 从全空数据库载入目标数据量,用来衡量数据库迁移重置性能
  • 只读测试 – 用来衡量数据库数据分析能力
  • 10%读90%写 – 模拟交互式应用的数据读写模式
  • 50%读50%写 – 模拟批处理的数据读写模式

YCSB 测试结果

在只读和重读测试中,AntsDB 超出 MySQL 30%以内,重写测试超出 MySQL 五倍。

结语

由于这是一次性能级的测试,我们在测试之初都捏着一把汗。所幸未做任何修改,AntsDB 顺利通过了全部功能测试,展示出龙芯 CPU 以及 Java 虚拟机的优秀兼容性。

从两项基准测试结果中,可以看出 AntsDB 与国际最流行的MySQL相比,性能基本维持在同一量级。TPC-C 测试中,AntsDB 与 MySQL 相比,差距在10%以内。

在 YCSB 测试中,AntsDB 在只读和重读测试中超出 MySQL 30% 左右,两者基本在同一水平线。在重写测试中,AntsDB 获得了较为明显的优势,MySQL 五倍的性能。

作为一门全新的虚拟化技术,AntsDB 未来还有待技术和市场的检验。不过其全新的虚拟化思路,以及带来的简化的架构还是非常吸引人的,这也是我们这次测试的初衷。我们推荐有 Hadoop 使用需求的朋友们可以考虑尝试。我们期待未来 AntsDB 能够提供更加全面的功能,兼容更多的数据库类型,以及性能上的出色表现。

Xinwei