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" edition = "2024"
[dependencies] [dependencies]
mace-kv = "0.0.24" # mace-kv = "0.0.24"
mace-kv = { path = "/home/neo/mace" }
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

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