Skip to main content

Sysbench benchmark report of MonoSQL

Test environment (AWS EC2/Auto Scaling Group)

Hardware configuration

Service typeEC2 typeInstance count
MonoSQLc5.2xlarge2-16
Sysbenchc5.9xlarge1

Software version

Service typeSoftware version
MonoSQL1.3.1
Sysbench1.0.20_2
OSUbuntu20.04

Parameter configuration

MonoSQL parameter configuration

plugin_maturity=experimental
datadir=/home/ubuntu/data0
max_connections=1200
plugin_dir=/home/ubuntu/install/lib/plugin
max_connect_errors=2147483647
performance_schema=ON
skip-log-bin
port=3306
socket=/tmp/mysqld3306.sock
plugin_load_add=ha_monosql
monosql
monosql_dynamodb_default_credentials=on
monosql_dynamodb_region=us-east-1
monosql_keyspace_name=mono
monosql_sqs_queue_name=monosql-queue

Prepare test data

Run the following command to prepare the test data. Note that table number is set 100 due to the DynamoDB on-demand table's initial throughput limit is 3000. If you use provisioned table with high RCU and WCU, table number could be set to 1 and table size can be set to 10 milltion or more.

sysbench /usr/share/sysbench/oltp_common.lua --mysql_storage_engine=monosql --tables=100 --table_size=10000 --mysql-user=sysb --mysql-password=sysb --mysql-host=$host --mysql-port=3306 --mysql-db=sbtest --time=600 --threads=240 --report-interval=10 --auto_inc=off --create_secondary=false --mysql-ignore-errors=all prepare

Run the test

Run the following command to perform the test:

$testname's value includes: oltp_point_select/oltp_update_non_index/oltp_insert

sysbench $testname --mysql_storage_engine=monosql --tables=100 --table_size=10000 --mysql-user=sysb --mysql-password=sysb --mysql-host=$host --mysql-port=3306 --mysql-db=sbtest --time=600 --threads=$thr_num --report-interval=10 --auto_inc=off --create_secondary=false --mysql-ignore-errors=all run

The following performance result shows that MonoSQL has a linear scalibility powered by DynamoDB. By adding more MonoSQL instances and more database connections, you can get single-digit millisecond latency at scale.

OLTP_POINT_SELECT Performance

Test TypeThread NumTPSAvg Latency95th percentile
c5.2xlarge * 224030338.697.912.52
c5.2xlarge * 448061920.877.712.30
c5.2xlarge * 8960126394.367.511.87
c5.2xlarge * 161920249806.747.612.30

OLTP_UPADTE_NON_INDEX Performance

Test TypeThread NumTPSAvg Latency95th percentile
c5.2xlarge * 224029365.008.111.87
c5.2xlarge * 448059023.228.111.87
c5.2xlarge * 8960119305.268.011.45
c5.2xlarge * 161920232533.598.211.87

OLTP_INSERT Performance

Test TypeThread NumTPSAvg Latency95th percentile
c5.2xlarge * 224029564.208.111.87
c5.2xlarge * 448059280.738.111.87
c5.2xlarge * 8960119394.468.011.45
c5.2xlarge * 161920233812.248.211.87