From 1aaaaee1ba7dc78fbd250a41f67bffccb158455b Mon Sep 17 00:00:00 2001 From: dawn <90008@gaze.systems> Date: Sun, 22 Mar 2026 05:16:30 +0300 Subject: [PATCH] [db] fix train dict broken when backlinks not enabled, also increase dict sizes --- Cargo.toml | 2 +- src/db/mod.rs | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 2b7ec8d..f24a2de 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2024" [features] -default = ["backlinks"] +default = [] sync_all = [] backlinks = [] diff --git a/src/db/mod.rs b/src/db/mod.rs index fa1c337..6b58a85 100644 --- a/src/db/mod.rs +++ b/src/db/mod.rs @@ -443,15 +443,17 @@ impl Db { "blocks" => &self.blocks, "events" => &self.events, "repos" => &self.repos, + #[cfg(feature = "backlinks")] "backlinks" => &self.backlinks, _ => miette::bail!("unknown keyspace for training: {ks_name}"), }; let dict_size = match ks_name { - "blocks" => 32_768, - "events" => 16_384, - "repos" => 16_384, - _ => 16_384, + "blocks" => kb(128), + "events" => kb(64), + "repos" => kb(64), + "backlinks" => kb(64), + _ => kb(32), }; let samples: Vec> = if ks_name == "blocks" { @@ -505,7 +507,8 @@ impl Db { "training zstd dictionary for keyspace {ks_name} ({} samples, {dict_size} bytes limit)...", samples.len(), ); - let dict_bytes = lsm_tree::train_zstd_dict(&samples, dict_size).into_diagnostic()?; + let dict_bytes = + lsm_tree::train_zstd_dict(&samples, dict_size as usize).into_diagnostic()?; let path = self.path.join(format!("dict_{ks_name}.bin")); std::fs::write(&path, &dict_bytes).into_diagnostic()?; tracing::info!( -- 2.51.2