From b4fbcf6bee99cf2d71bbcc7d7165b0ce64b6f371 Mon Sep 17 00:00:00 2001 From: nym21 Date: Tue, 11 Mar 2025 17:55:14 +0100 Subject: [PATCH] global: snapshot --- Cargo.lock | 5 ---- crates/brk_computer/src/storage/vecs/base.rs | 21 ++++++++++++++ crates/brk_server/Cargo.toml | 2 -- crates/brk_vec/Cargo.toml | 3 -- crates/brk_vec/src/lib.rs | 30 ++++---------------- 5 files changed, 26 insertions(+), 35 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1ccd43e04..0001d38c4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -535,7 +535,6 @@ dependencies = [ "brk_logger", "brk_parser", "brk_query", - "brk_vec", "clap", "color-eyre", "jiff", @@ -543,7 +542,6 @@ dependencies = [ "minreq", "oxc", "serde", - "serde_json", "tokio", "tower-http", "zip", @@ -553,14 +551,11 @@ dependencies = [ name = "brk_vec" version = "0.0.8" dependencies = [ - "brk_core", - "brk_exit", "memmap2", "rayon", "serde", "serde_json", "zerocopy", - "zstd", ] [[package]] diff --git a/crates/brk_computer/src/storage/vecs/base.rs b/crates/brk_computer/src/storage/vecs/base.rs index 65ef0812d..3a98a2ca1 100644 --- a/crates/brk_computer/src/storage/vecs/base.rs +++ b/crates/brk_computer/src/storage/vecs/base.rs @@ -2,6 +2,7 @@ use core::error; use std::{ cmp::Ordering, fmt::Debug, + io, ops::{Add, Deref, DerefMut, Sub}, path::{Path, PathBuf}, }; @@ -37,6 +38,16 @@ where index.try_into().map_err(|_| Error::FailedKeyTryIntoUsize) } + fn safe_truncate_if_needed(&mut self, index: I, exit: &Exit) -> Result<()> { + if exit.triggered() { + return Ok(()); + } + exit.block(); + self.truncate_if_needed(index)?; + exit.release(); + Ok(()) + } + #[inline] fn push_and_flush_if_needed(&mut self, index: I, value: T, exit: &Exit) -> Result<()> { match self.len().cmp(&Self::i_to_usize(index)?) { @@ -58,6 +69,16 @@ where } } + pub fn safe_flush(&mut self, exit: &Exit) -> io::Result<()> { + if exit.triggered() { + return Ok(()); + } + exit.block(); + self.flush()?; + exit.release(); + Ok(()) + } + #[inline] fn path_computed_version(&self) -> PathBuf { self.path().join("computed_version") diff --git a/crates/brk_server/Cargo.toml b/crates/brk_server/Cargo.toml index 49d775650..0d311ac47 100644 --- a/crates/brk_server/Cargo.toml +++ b/crates/brk_server/Cargo.toml @@ -16,7 +16,6 @@ brk_indexer = { workspace = true } brk_logger = { workspace = true } brk_parser = { workspace = true } brk_query = { workspace = true } -brk_vec = { workspace = true } clap = { workspace = true } color-eyre = { workspace = true } jiff = { workspace = true } @@ -24,7 +23,6 @@ log = { workspace = true } minreq = { workspace = true } oxc = { version = "0.57.0", features = ["codegen", "minifier"] } serde = { workspace = true } -serde_json = { workspace = true } tokio = { version = "1.44.0", features = ["full"] } tower-http = { version = "0.6.2", features = ["compression-full"] } zip = "2.2.3" diff --git a/crates/brk_vec/Cargo.toml b/crates/brk_vec/Cargo.toml index 6e1fc08db..e992d89d8 100644 --- a/crates/brk_vec/Cargo.toml +++ b/crates/brk_vec/Cargo.toml @@ -9,11 +9,8 @@ license.workspace = true repository.workspace = true [dependencies] -brk_core = { workspace = true } -brk_exit = { workspace = true } memmap2 = "0.9.5" rayon = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } zerocopy = { workspace = true } -zstd = "0.13.3" diff --git a/crates/brk_vec/src/lib.rs b/crates/brk_vec/src/lib.rs index f376b70e8..5acd0dabe 100644 --- a/crates/brk_vec/src/lib.rs +++ b/crates/brk_vec/src/lib.rs @@ -15,7 +15,6 @@ use std::{ sync::OnceLock, }; -use brk_exit::Exit; pub use memmap2; use rayon::prelude::*; pub use zerocopy; @@ -28,6 +27,11 @@ pub use enums::*; pub use structs::*; pub use traits::*; +/// In bytes +const MAX_PAGE_SIZE: usize = 4 * 4096; +const ONE_MIB: usize = 1024 * 1024; +const MAX_CACHE_SIZE: usize = 100 * ONE_MIB; + /// /// A very small, fast, efficient and simple storable Vec /// @@ -53,11 +57,6 @@ pub struct StorableVec { phantom: PhantomData, } -/// In bytes -const MAX_PAGE_SIZE: usize = 4 * 4096; -const ONE_MB: usize = 1024 * 1024; -const MAX_CACHE_SIZE: usize = 100 * ONE_MB; - impl StorableVec where I: StoredIndex, @@ -423,16 +422,6 @@ where Ok(()) } - pub fn safe_flush(&mut self, exit: &Exit) -> io::Result<()> { - if exit.triggered() { - return Ok(()); - } - exit.block(); - self.flush()?; - exit.release(); - Ok(()) - } - pub fn reset_file(&mut self) -> Result<()> { self.truncate_if_needed(I::from(0))?; Ok(()) @@ -453,15 +442,6 @@ where Ok(value_at_index) } - pub fn safe_truncate_if_needed(&mut self, index: I, exit: &Exit) -> Result<()> { - if exit.triggered() { - return Ok(()); - } - exit.block(); - self.truncate_if_needed(index)?; - exit.release(); - Ok(()) - } #[inline] pub fn i_to_usize(index: I) -> Result {