bucket support

This commit is contained in:
abbycin 2026-02-05 10:05:21 +08:00
parent 36c15dc0d0
commit 9c85e7407e
Signed by: abby
GPG Key ID: B636E0F0307EF8EB
2 changed files with 8 additions and 4 deletions

View File

@ -4,7 +4,8 @@ version = "0.1.0"
edition = "2024"
[dependencies]
mace-kv = "0.0.24"
# mace-kv = "0.0.24"
mace-kv = { path = "/home/neo/mace" }
clap = { version = "4.5.48", features = ["derive"] }
rand = "0.9.2"
log = "0.4.22"

View File

@ -87,6 +87,7 @@ fn main() {
saved.tmp_store = false;
let mut db = Mace::new(opt.validate().unwrap()).unwrap();
db.disable_gc();
let mut bkt = db.bucket("default").unwrap();
let mut rng = rand::rng();
let value = Arc::new(vec![b'0'; args.value_size]);
@ -105,24 +106,26 @@ fn main() {
}
if args.mode == "get" || args.mode == "scan" {
let pre_tx = db.begin().unwrap();
let pre_tx = bkt.begin().unwrap();
(0..args.threads).for_each(|tid| {
for k in &keys[tid] {
pre_tx.put(k, &*value).unwrap();
}
});
pre_tx.commit().unwrap();
drop(bkt);
drop(db);
// re-open db
saved.tmp_store = true;
db = Mace::new(saved.validate().unwrap()).unwrap();
bkt = db.bucket("default").unwrap();
// simulate common use cases
for i in 0..keys_per_thread {
let tid = rng.random_range(0..args.threads);
let mut k = format!("key_{tid}_{i}").into_bytes();
k.resize(args.key_size, b'x');
let view = db.view().unwrap();
let view = bkt.view().unwrap();
view.get(&k).unwrap();
}
}
@ -133,7 +136,7 @@ fn main() {
let h: Vec<JoinHandle<()>> = (0..args.threads)
.map(|tid| {
let db = db.clone();
let db = bkt.clone();
let tk: &Vec<Vec<u8>> = unsafe { std::mem::transmute(&keys[tid]) };
let total_ops = total_ops.clone();
let barrier = Arc::clone(&barrier);