一、Kunlun-Storage简介
KunlunStorage是泽拓科技基于Percona-mysql-8.0.26优化的数据库存储服务器,作为KunlunBase分布式数据库的存储节点,我们对percona-mysql做了大量性能增强,补足了其在XA事务处理的容灾和错误处理方面的空白,并增加了一些昆仑数据库集群整体需要的功能,包括fullsync复制,update/delete…returning语句等。
二、测试环境
测试软件:
sysbench 1.1.0-df89d34 (using bundled LuaJIT 2.1.0-beta3(AWS 云上环境)
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)(本地部署环境)
服务器配置:
PostgreSQL和Kunlun-Storage各部署在一台:亚马逊i3.4xlarge(CPU 8cores 16 Threads,内存:122G,存储:2个1900 NVMe SSD)上(AWS 云上环境)
PostgreSQL和Kunlun-Storage各部署同一台服务器上(CPU 16 cores 32 Threads, 内存: 64G,存储:1个 NVMe SSD)上(本地部署环境)
软件版本:
Postgresql:PostgreSQL 14.2 onx86_64-pc-linux-gnu
Kunlun-Storage:8.0.26-16-kunlun-storage
数据库参数配置:
PostgreSQL:
shared_buffers = 32768MB
wal_level = replica
fsync = on
synchronous_commit = on
wal_sync_method = fdatasync
full_page_writes = on
Kunlun-Storage:
innodb_buffer_pool_size 32768MB
inndo_flush_at_trx_commit=1
sync_binlog=1
innodb_use_fdatasync = 1
测试背景:
PostgreSQL和Kunlun-Storage采用默认的安装配置,只调整了内存参数及上述几个参数,整个测试过程PostgreSQL和Kunlun-Storage没有任何优化行为。
三、测试数据
测试软件:
sysbench 1.1.0-df89d34 (using bundled LuaJIT 2.1.0-beta3(AWS 云上环境)
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)(本地部署环境)
Sysbench测试场景:
场景一 :oltp_write_only
每个事务执行如下4种操作:execute_index_updates()、execute_non_index_updates()、execute_delete_inserts()
场景二:oltp_update_index
每个事务执行如下1种操作:execute_index_updates()
场景三:oltp_update_non_index
每个事务执行如下1种操作:execute_non_index_updates()
场景四:oltp_read_write.lua
每个事务执行如下7种操作:execute_simple_ranges(),execute_sum_ranges()、 execute_order_ranges()、execute_distinct_ranges()、execute_index_updates()、execute_non_index_updates()、execute_delete_inserts()
各个操作操作对应的SQL语句如下:
sum_ranges = {
"SELECT SUM(k) FROMsbtest%u WHERE id BETWEEN ? AND ?",
t.INT, t.INT},
order_ranges = {
"SELECT c FROMsbtest%u WHERE id BETWEEN ? AND ? ORDER BY c",
t.INT, t.INT},
distinct_ranges = {
"SELECT DISTINCT cFROM sbtest%u WHERE id BETWEEN ? AND ? ORDER BY c",
t.INT, t.INT},
index_updates