support mace 0.0.23

This commit is contained in:
abbycin 2026-01-02 15:03:39 +08:00
parent 5d92699980
commit 95ee67aba5
Signed by: abby
GPG Key ID: B636E0F0307EF8EB
18 changed files with 45 additions and 8 deletions

View File

@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2024" edition = "2024"
[dependencies] [dependencies]
mace-kv = { git = "https://github.com/abbycin/mace" } mace-kv = "0.0.23"
clap = { version = "4.5.48", features = ["derive"] } clap = { version = "4.5.48", features = ["derive"] }
rand = "0.9.2" rand = "0.9.2"
log = "0.4.22" log = "0.4.22"

View File

@ -1,13 +1,18 @@
# mace 0.0.22 vs rocksdb 10.4.2 # mace 0.0.22 vs rocksdb 10.4.2
## insert performance (sequential) ## sequential insert
![mace_insert](./scripts/mace_insert.png) ![mace__sequential_insert](./scripts/mace_sequential_insert.png)
![rocksdb_insert](./scripts/rocksdb_insert.png) ![rocksdb_sequential_insert](./scripts/rocksdb_sequential_insert.png)
## random insert
![mace_random_insert](./scripts/mace_random_insert.png)
![rocksdb_random_insert](./scripts/rocksdb_random_insert.png)
--- ---
## random get performance (warm get) ## random get (warm get)
![mace_get](./scripts/mace_get.png) ![mace_get](./scripts/mace_get.png)
@ -21,7 +26,7 @@
![rockdb_mixed](./scripts/rocksdb_mixed.png) ![rockdb_mixed](./scripts/rocksdb_mixed.png)
# sequential scan perfomance (warm scan) # sequential scan (warm scan)
![mace_scan](./scripts/mace_scan.png) ![mace_scan](./scripts/mace_scan.png)

View File

@ -282,6 +282,13 @@ int main(int argc, char *argv[]) {
return args.mode == "insert" ? 100 : 0; return args.mode == "insert" ? 100 : 0;
}(); }();
uint64_t ops = total_op.load(std::memory_order_relaxed) / b.elapse_sec(); uint64_t ops = total_op.load(std::memory_order_relaxed) / b.elapse_sec();
if (args.mode == "insert") {
if (args.random) {
args.mode = "random_insert";
} else {
args.mode = "sequential_insert";
}
}
fmt::println("{},{},{},{},{},{},{}", args.mode, args.threads, args.key_size, args.value_size, ratio, (uint64_t) ops, fmt::println("{},{},{},{},{},{},{}", args.mode, args.threads, args.key_size, args.value_size, ratio, (uint64_t) ops,
(uint64_t) b.elapse_ms()); (uint64_t) b.elapse_ms());
db->ReleaseSnapshot(snapshot); db->ReleaseSnapshot(snapshot);

View File

@ -24,6 +24,15 @@ function samples() {
do do
for ((k = 0; k < ${#mode[@]}; k += 1)) for ((k = 0; k < ${#mode[@]}; k += 1))
do do
if [ "${mode[k]}" == "insert" ]
then
./target/release/kv_bench --path $db_root --threads $i --iterations $cnt --mode ${mode[k]} --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} --random
if test $? -ne 0
then
echo "${mode[k]} threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} random fail"
exit 1
fi
fi
./target/release/kv_bench --path $db_root --threads $i --iterations $cnt --mode ${mode[k]} --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} ./target/release/kv_bench --path $db_root --threads $i --iterations $cnt --mode ${mode[k]} --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]}
if test $? -ne 0 if test $? -ne 0
then then

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

View File

@ -23,6 +23,15 @@ function samples() {
do do
for ((k = 0; k < ${#mode[@]}; k += 1)) for ((k = 0; k < ${#mode[@]}; k += 1))
do do
if [ "${mode[k]}" == "insert" ]
then
./build/release/rocksdb_bench --path $db_root --threads $i --iterations $cnt --mode ${mode[k]} --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} --random 1
if test $? -ne 0
then
echo "${mode[k]} threads $i ksz ${kv_sz[j]} vsz ${kv_sz[j+1]} random fail"
exit 1
fi
fi
./build/release/rocksdb_bench --path $db_root --threads $i --iterations $cnt --mode ${mode[k]} --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]} ./build/release/rocksdb_bench --path $db_root --threads $i --iterations $cnt --mode ${mode[k]} --key-size ${kv_sz[j]} --value-size ${kv_sz[j+1]}
if test $? -ne 0 if test $? -ne 0
then then

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

View File

@ -52,7 +52,7 @@ fn main() {
Logger::init().add_file("/tmp/x.log", true); Logger::init().add_file("/tmp/x.log", true);
log::set_max_level(log::LevelFilter::Info); log::set_max_level(log::LevelFilter::Info);
} }
let args = Args::parse(); let mut args = Args::parse();
let path = Path::new(&args.path); let path = Path::new(&args.path);
@ -217,6 +217,13 @@ fn main() {
} else { } else {
0 0
}; };
if args.mode == "insert" {
if args.random {
args.mode = "random_insert".into();
} else {
args.mode = "sequential_insert".into();
}
}
eprintln!( eprintln!(
"{},{},{},{},{},{},{}", "{},{},{},{},{},{},{}",
args.mode, args.mode,