bucket support
This commit is contained in:
parent
36c15dc0d0
commit
9c85e7407e
@ -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"
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user