Has anyone tested the raft-engine? It seems that the mitigation on IO is not significant

Note:
This topic has been translated from a Chinese forum by GPT and might contain errors.

Original topic: 有人做过raft-engine测试的戏能测试么,貌似看起来对IO的缓解不大

| username: 迪迦奥特曼

Comparison of performance testing between version 5.3.0 without raft-engine and version 6.1 with raft-engine

Preparing Data

sysbench --db-driver=mysql --mysql-host=xxx --mysql-port=xxx --mysql-user=root --mysql-password=xxx --mysql-db=ssb --table_size=10000000 --percentile=99 --tables=10 --events=0 --time=300 --threads=10 oltp_insert prepare

Performance Testing

sysbench --db-driver=mysql --mysql-host=xxx --mysql-port=xxx --mysql-user=root --mysql-password=xxx --mysql-db=ssb --table_size=10000000 --tables=10 --events=0 --time=300 --threads=16 --percentile=99 --report-interval=1 oltp_insert run

System Monitoring without raft-engine

Concurrency 16

Concurrency 32

Concurrency 64

System Monitoring with raft-engine

Concurrency 16

Concurrency 32

Concurrency 64

tikv Configuration File

log-level = "info"
log-format = "text"
slow-log-file = "/export/logs/slow.log"
slow-log-threshold = "1s"
log-rotation-timespan = "24h"
log-rotation-size = "300MB"
abort-on-panic = true

[readpool.unified]
stack-size = "10MB"
max-tasks-per-worker = 2000

[server]
status-thread-pool-size = 1
grpc-compression-type = "none"
grpc-concurrency = 5
grpc-concurrent-stream = 1024
grpc-raft-conn-num = 1
grpc-stream-initial-window-size = "2MB"
grpc-keepalive-time = "10s"
grpc-keepalive-timeout = "3s"
max-grpc-send-msg-len = 10485760
concurrent-send-snap-limit = 32
concurrent-recv-snap-limit = 32
end-point-recursion-limit = 1000
end-point-request-max-handle-duration = "60s"
snap-max-write-bytes-per-sec = "100MB"
end-point-slow-log-threshold = "1s"
raft-client-queue-size = 8192

[raft-engine]
enable = true
batch-compression-threshold = "8KB"
bytes-per-sync = "4MB"
target-file-size = "128MB"
purge-threshold = "5GB"
recovery-mode = "tolerate-tail-corruption"
recovery-read-block-size = "16KB"
recovery-threads = 4
memory-limit = "1GB"

[rocksdb.defaultcf]
compression-per-level = ["no", "no", "lz4", "lz4", "lz4", "zstd", "zstd"]
block-size = "64KB"
level0-file-num-compaction-trigger = 4
level0-slowdown-writes-trigger = 20
level0-stop-writes-trigger = 36
write-buffer-size = "128MB"
max-write-buffer-number = 5
max-bytes-for-level-base = "512MB"
target-file-size-base = "32MB"
cache-index-and-filter-blocks = true
pin-l0-filter-and-index-blocks = true

[rocksdb.writecf]
compression-per-level = ["no", "no", "lz4", "lz4", "lz4", "zstd", "zstd"]
block-size = "64KB"
write-buffer-size = "128MB"
max-write-buffer-number = 5
min-write-buffer-number-to-merge = 1
max-bytes-for-level-base = "512MB"
target-file-size-base = "32MB"
level0-file-num-compaction-trigger = 4
level0-slowdown-writes-trigger = 20
level0-stop-writes-trigger = 36
cache-index-and-filter-blocks = true
pin-l0-filter-and-index-blocks = true

[raftdb.defaultcf]
compression-per-level = ["no", "no", "lz4", "lz4", "lz4", "zstd", "zstd"]
block-size = "64KB"
write-buffer-size = "128MB"
max-write-buffer-number = 5
min-write-buffer-number-to-merge = 1
max-bytes-for-level-base = "512MB"
target-file-size-base = "32MB"
level0-file-num-compaction-trigger = 4
level0-slowdown-writes-trigger = 20
level0-stop-writes-trigger = 36
cache-index-and-filter-blocks = true
pin-l0-filter-and-index-blocks = true
| username: ddhe9527 | Original post link

The official blog provided some benchmark comparison results, but there are not many configuration details.