adpat rocksdb

This commit is contained in:
2025-08-12 17:13:06 +08:00
parent 5796c5aa3e
commit c9b915cd49
14 changed files with 412 additions and 182 deletions
+5 -5
View File
@@ -21,20 +21,20 @@ function samples() {
./target/release/kv_bench --path /home/abby/mace_bench --threads $i --iterations 100000 --mode get --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]}
if test $? -ne 0
then
echo "insert threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail"
echo "get threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail"
exit 1
fi
./target/release/kv_bench --path /home/abby/mace_bench --threads $i --iterations 100000 --mode mixed --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} --insert-ratio 30
if test $? -ne 0
then
echo "insert threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail"
echo "mixed threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail"
exit 1
fi
done
done
}
echo mode,threads,key_size,value_size,insert_ratio,ops > scripts/x.csv
samples 2>> scripts/x.csv
echo mode,threads,key_size,value_size,insert_ratio,ops > scripts/mace.csv
samples 2>> scripts/mace.csv
popd
./bin/python plot.py
./bin/python plot.py mace.csv
+9 -6
View File
@@ -1,14 +1,17 @@
import pandas as pd
import matplotlib.pyplot as plt
from adjustText import adjust_text
import sys
def real_mode(m):
if m == "mixed":
return "mixed (70% read, 30% write)"
return m
return "MIXED (70% Get, 30% Put)"
return m.upper()
name = sys.argv[1]
prefix = name.split(".")[0]
# 读取数据
df = pd.read_csv("./x.csv")
df = pd.read_csv(f"./{name}")
# 按 mode 分组
modes = df["mode"].unique()
@@ -40,11 +43,11 @@ for mode in modes:
adjust_text(texts, arrowprops=dict(arrowstyle="->", color='gray'))
# 设置图表样式
plt.title(f"Performance: {real_mode(mode).upper()}", fontsize=16)
plt.title(f"{prefix.upper()}: {real_mode(mode)}", fontsize=16)
plt.xlabel("Threads", fontsize=14)
plt.ylabel("OPS", fontsize=14)
plt.grid(True, linestyle="--", alpha=0.6)
plt.legend()
plt.tight_layout()
plt.savefig(f"{mode}.png")
plt.close()
plt.savefig(f"{prefix}_{mode}.png")
plt.close()
+41
View File
@@ -0,0 +1,41 @@
#!/usr/bin/env bash
pushd .
cd ../rocksdb
cmake --preset release 1>/dev/null 2>/dev/null
cmake --build --preset release 1>/dev/null 2>/dev/null
function samples() {
kv_sz=(16 16 100 1024 1024 1024)
# set -x
for ((i = 1; i <= $(nproc); i *= 2))
do
for ((j = 0; j < ${#kv_sz[@]}; j += 2))
do
./build/release/rocksdb_bench --path /home/abby/rocksdb_tmp --threads $i --iterations 100000 --mode insert --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]}
if test $? -ne 0
then
echo "insert threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail"
exit 1
fi
./build/release/rocksdb_bench --path /home/abby/rocksdb_tmp --threads $i --iterations 100000 --mode get --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]}
if test $? -ne 0
then
echo "get threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail"
exit 1
fi
./build/release/rocksdb_bench --path /home/abby/rocksdb_tmp --threads $i --iterations 100000 --mode mixed --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} --insert-ratio 30
if test $? -ne 0
then
echo "mixed threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} fail"
exit 1
fi
done
done
}
echo mode,threads,key_size,value_size,insert_ratio,ops > ../scripts/rocksdb.csv
samples 1>> ../scripts/rocksdb.csv
popd
./bin/python plot.py rocksdb.csv