# Bitalostored
- There are currently several well-known open source storage systems (compatible with the redis protocol), two products (*d* & *i*) with excellent performance are chosen. This benchmark is bases on bitalostored v6.0 and two procudcts (*d* & *i*) newest version.
# Hardware
CPU: Intel(R) Xeon(R) Platinum 8255C CPU @ 2.50GHz
Memory: 384GB
Disk: 2*3.5TB SSD
- Disk(File) IOPS(BW)
| BlockSize | Write | RandWrite | Read | RandRead |
|---|---|---|---|---|
| 4KB | 294K(1150MiB/s) | 232K(905MiB/s) | 446K(1742MiB/s) | 446K(1743MiB/s) |
| 8KB | 266K(2080MiB/s) | 244K(1902MiB/s) | 309K(2414MiB/s) | 404K(3159MiB/s) |
# Program
Benchmark: memtier_benchmark (redis official tool)
NoSQL Program: thread number(8), cgroup cpu(8 core)
Command args: 3 data spec
--data-size=1024 --key-maximum=40672038 -t 16 -c 32 -n 317750 # items=40672000 (8*16*317750)
--data-size=128 --key-maximum=335544320 -t 16 -c 32 -n 2621440 # items=335544320 (8*16*2621440)
- Command (e.g., --data-size=1024)
./memtier_benchmark -t 16 -c 32 -s 127.0.0.1 -p xxxx --distinct-client-seed --command="set __key__ __data__" --key-prefix="performance_test_key_prefix_" --key-minimum=1 --key-maximum=40672038 --random-data --data-size=1024 -n 317750
./memtier_benchmark -t 16 -c 32 -s 127.0.0.1 -p xxxx --distinct-client-seed --command="get __key__" --key-prefix="performance_test_key_prefix_" --key-minimum=1 --key-maximum=40672038 --test-time=300
./memtier_benchmark -t 16 -c 32 -s 127.0.0.1 -p xxxx --distinct-client-seed --command="incr __key__" --key-prefix="int_" --key-minimum=1 --key-maximum=40672038 --random-data --data-size=1024 -n 317750
./memtier_benchmark -t 16 -c 32 -s 127.0.0.1 -p xxxx --distinct-client-seed --command="lpush __key__ __data__" --key-prefix="list_" --key-minimum=1 --key-maximum=40672038 --random-data --data-size=1024 -n 317750
./memtier_benchmark -t 16 -c 32 -s 127.0.0.1 -p xxxx --distinct-client-seed --command="sadd __key__ __data__" --key-prefix="set_" --key-minimum=1 --key-maximum=40672038 --random-data --data-size=1024 -n 317750
./memtier_benchmark -t 16 -c 32 -s 127.0.0.1 -p xxxx --distinct-client-seed --command="zadd __key__ __key__ __data__" --key-prefix="" --key-minimum=1 --key-maximum=40672038 --random-data --data-size=1024 -n 317750
./memtier_benchmark -t 16 -c 32 -s 127.0.0.1 -p xxxx --distinct-client-seed --command="hset __key__ __data__ __key__" --key-prefix="hash_" --key-minimum=1 --key-maximum=40672038 --random-data --data-size=1024 -n 317750
incr is irrelevant to data size, only needs to be tested once.
# Data
Total data size:40GB
Comparison dimensions: comand(SET、GET、LPUSH、SADD、ZADD、HSET) x value-size&count(1KB & 40,672,000、128B & 335,544,320), INCR
Comparison standard: QPS on single-core (multi-core QPS / core number), single-core performance reflects cost advantage better.
# Config
- *d* & *i*
Threads:8
Memtable:512MB
WAL:enable
Binlog:disable
Cache:40GB
Other parameters are set as same as the official recommended benchmark configuration
- bitalostored
Threads:8
Memtable:512MB
WAL:enable
Raftlog:disable
Cache:0GB~40GB
# Result
- QPS

- QPS (Horizontal)
