Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions qmdb/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,28 @@ path = "examples/v1_fuzz/main.rs"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
sha2 = { version = "0.10.8", features = ["asm", "asm-aarch64", "sha2-asm"] }
lazy_static = "1.4.0"
sha2 = { version = "0.10.9", features = ["asm", "asm-aarch64", "sha2-asm"] }
lazy_static = "1.5.0"
hex = "0.4.3"
anyhow = "1.0.86"
anyhow = "1.0.98"
byteorder = "1.5.0"
xxhash-rust = { version = "0.8.10", features = ["xxh32", "xxh3"] }
xxhash-rust = { version = "0.8.15", features = ["xxh32", "xxh3"] }
threadpool = "1.8.1"
atomptr = "1.4.1"
rand_core = { version = "0.6.4", features = ["getrandom"] }
time = "0.3.36"
atomptr = "2.0.0"
rand_core = { version = "0.9.3" }
time = "0.3.41"
rayon = "1.10.0"
dashmap = "6.0.0-rc.1"
parking_lot = { version = "0.12.1", features = ["arc_lock"] }
dashmap = "6.1.0"
parking_lot = { version = "0.12.4", features = ["arc_lock"] }
blake2 = "0.10.6"
serde = {version="1.0.210", features = ["derive"]}
bincode = "1.3.3"
serde = { version = "1.0.219", features = ["derive"] }
bincode = "2.0.1"
hpfile = { path = "../hpfile" }
rs_merkle = "1.4"
rs_merkle = "1.5.0"
aes-gcm = "0.10.3"
aead = "0.5.2"
generic-array = "1.1.1"
log = "0.4"
generic-array = "1.1.0"
log = "0.4.27"

[target.'cfg(target_os = "linux")'.dependencies]
io-uring = { version = "0.7.2", optional = true }
Expand All @@ -58,5 +58,5 @@ profiling_hybridindexer = []
tee_cipher = []
directio = ["io-uring"]
hpfile_all_in_mem = ["hpfile/all_in_mem"]
in_sp1=[]
slow_hashing=[]
in_sp1 = []
slow_hashing = []
12 changes: 8 additions & 4 deletions qmdb/examples/v1_fuzz/main.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
pub mod refdb;

use crate::refdb::RefDB;
use bincode::{config::standard, Decode, Encode};
use byteorder::{ByteOrder, LittleEndian};
use hex;
use parking_lot::RwLock;
Expand All @@ -24,12 +25,12 @@ use std::sync::Arc;
const BLOCK_COUNT: usize = 100; // each block about 4.5M
const BLOCK_NUM_PER_FILE: usize = 100;

#[derive(serde::Serialize, serde::Deserialize)]
#[derive(serde::Serialize, serde::Deserialize, Encode, Decode)]
struct TaskLists {
lists: Vec<TaskList>,
}

#[derive(serde::Serialize, serde::Deserialize)]
#[derive(serde::Serialize, serde::Deserialize, Encode, Decode)]
struct TaskList {
tasks: Vec<SimpleTask>,
}
Expand All @@ -56,7 +57,7 @@ fn generate_test_block(test_gen: &mut TestGenV1, start_height: usize, end_height
task_lists.push(TaskList { tasks: task_list });
}
let task_lists = TaskLists { lists: task_lists };
let out = bincode::serialize(&task_lists).unwrap();
let out = bincode::encode_to_vec(&task_lists, standard()).unwrap();
let tasks_file = format!("tasks_for_test_{}.dat", start_height / BLOCK_NUM_PER_FILE);
let mut file = File::create_new(tasks_file).unwrap();
file.write_all(out.as_ref()).unwrap();
Expand Down Expand Up @@ -89,7 +90,10 @@ fn run_fuzz_single_round(
let file_len = file.metadata().unwrap().len();
let mut bz = vec![0u8; file_len as usize];
file.read(&mut bz).unwrap();
let task_lists = bincode::deserialize::<TaskLists>(&bz).unwrap().lists;
let task_lists = bincode::decode_from_slice::<TaskLists, _>(&bz, standard())
.unwrap()
.0
.lists;
println!(
"task_lists len:{:?} which sn is {:?}",
task_lists.len(),
Expand Down
13 changes: 7 additions & 6 deletions qmdb/src/metadb.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use crate::def::{NONCE_SIZE, PRUNE_EVERY_NBLOCKS, SHARD_COUNT, TAG_SIZE, TWIG_SHIFT};
use aes_gcm::aead::AeadInPlace;
use aes_gcm::Aes256Gcm;
use bincode::{config::standard, Decode, Encode};
use byteorder::{ByteOrder, LittleEndian};
use dashmap::DashMap;
use log::warn;
Expand All @@ -15,7 +16,7 @@ use std::{
os::unix::fs::FileExt,
};

#[derive(serde::Serialize, serde::Deserialize, Clone, Debug)]
#[derive(serde::Serialize, serde::Deserialize, Clone, Debug, Encode, Decode)]
pub struct MetaInfo {
pub curr_height: i64,
pub last_pruned_twig: [(u64, i64); SHARD_COUNT],
Expand Down Expand Up @@ -100,8 +101,8 @@ impl MetaDB {
let size = meta_info_bz.len();
meta_info_bz = meta_info_bz[8..size - TAG_SIZE].to_owned();
}
match bincode::deserialize::<MetaInfo>(&meta_info_bz[..]) {
Ok(info) => self.info = info,
match bincode::decode_from_slice::<MetaInfo, _>(&meta_info_bz[..], standard()) {
Ok((info, _)) => self.info = info,
Err(_) => warn!("Failed to deserialize {}, ignore it", name),
};
}
Expand All @@ -113,8 +114,8 @@ impl MetaDB {
let size = meta_info_bz.len();
meta_info_bz = meta_info_bz[8..size - TAG_SIZE].to_owned();
}
match bincode::deserialize::<MetaInfo>(&meta_info_bz[..]) {
Ok(info) => {
match bincode::decode_from_slice::<MetaInfo, _>(&meta_info_bz[..], standard()) {
Ok((info, _)) => {
if info.curr_height > self.info.curr_height {
self.info = info; //pick the latest one
}
Expand Down Expand Up @@ -154,7 +155,7 @@ impl MetaDB {
let kv = self.extra_data_map.remove(&self.info.curr_height).unwrap();
self.info.extra_data = kv.1;
let name = format!("{}.{}", self.meta_file_name, self.info.curr_height % 2);
let mut bz = bincode::serialize(&self.info).unwrap();
let mut bz = bincode::encode_to_vec(&self.info, standard()).unwrap();
if self.cipher.is_some() {
let cipher = self.cipher.as_ref().unwrap();
let mut nonce_arr = [0u8; NONCE_SIZE];
Expand Down
2 changes: 1 addition & 1 deletion qmdb/src/tasks/helpers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use crate::utils::changeset::ChangeSet;
use serde::{Deserialize, Serialize};
use std::sync::Arc;

#[derive(Clone, serde::Serialize, serde::Deserialize)]
#[derive(Clone, serde::Serialize, serde::Deserialize, bincode::Encode, bincode::Decode)]
pub struct SimpleTask {
#[serde(
serialize_with = "serialize_arc_vec",
Expand Down
4 changes: 2 additions & 2 deletions qmdb/src/utils/changeset.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ use crate::def::{OP_CREATE, OP_DELETE, OP_READ, OP_WRITE, SHARD_COUNT};
use crate::utils::{byte0_to_shard_id, hasher, OpRecord};
use std::cmp::Ordering;

#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, bincode::Encode, bincode::Decode)]
pub struct ChangeSet {
pub data: Vec<u8>,
pub op_list: Vec<ChangeOp>,
shard_starts: [u32; SHARD_COUNT],
shard_op_count: [u32; SHARD_COUNT],
}

#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, bincode::Encode, bincode::Decode)]
pub struct ChangeOp {
pub op_type: u8,
shard_id: u8,
Expand Down
4 changes: 3 additions & 1 deletion qmdb/src/utils/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ pub fn byte0_to_shard_id(byte0: u8) -> usize {
(byte0 as usize) * SHARD_COUNT / 256
}

#[derive(Debug, PartialEq, Clone, serde::Serialize, serde::Deserialize)]
#[derive(
Debug, PartialEq, Clone, serde::Serialize, serde::Deserialize, bincode::Encode, bincode::Decode,
)]
pub struct OpRecord {
pub op_type: u8,
pub num_active: usize,
Expand Down
2 changes: 1 addition & 1 deletion rust-toolchain.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[toolchain]
channel = "1.84.1"
channel = "1.88.0"
components = ["rustc", "cargo", "clippy", "rustfmt", "llvm-tools-preview"]