global: delay compaction

This commit is contained in:
nym21
2026-03-27 23:02:31 +01:00
parent d24f3691cb
commit 45c77a4c3b
24 changed files with 44 additions and 38 deletions

24
Cargo.lock generated
View File

@@ -836,9 +836,9 @@ checksum = "1c53ba0f290bfc610084c05582d9c5d421662128fc69f4bf236707af6fd321b9"
[[package]]
name = "cc"
version = "1.2.57"
version = "1.2.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423"
checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1"
dependencies = [
"find-msvc-tools",
"jobserver",
@@ -2180,9 +2180,9 @@ dependencies = [
[[package]]
name = "mio"
version = "1.1.1"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc"
checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1"
dependencies = [
"libc",
"wasi",
@@ -2545,9 +2545,9 @@ dependencies = [
[[package]]
name = "rawdb"
version = "0.8.0"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ebc4ac8e255d001f609b3d3002c7209e1668b9ab0aedf9a6a263e2e7e2c3cdb"
checksum = "fddb06a11fcc5f7f44d9b5bee4ab61b5a1135232b2fd239253428abd192ba504"
dependencies = [
"libc",
"log",
@@ -2963,9 +2963,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "simd-adler32"
version = "0.3.8"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2"
checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214"
[[package]]
name = "slab"
@@ -3439,9 +3439,9 @@ checksum = "8f54a172d0620933a27a4360d3db3e2ae0dd6cceae9730751a036bbf182c4b23"
[[package]]
name = "vecdb"
version = "0.8.0"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68e0237a44ee8ea6692e815154cc477a8c1936b27dca79bb1b9e093fa55e04a2"
checksum = "a33f1cbef9bf38048ee1b51328366f0a734e06bcc0b9739d68fef9ecce43d0b8"
dependencies = [
"itoa",
"libc",
@@ -3462,9 +3462,9 @@ dependencies = [
[[package]]
name = "vecdb_derive"
version = "0.8.0"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fef159303d1f54cbb08b8249da70a9e1573145074949a91e9072addde209d65"
checksum = "33d31f03d1c7269d65195fb4d54c1d510b124807871bd11af7d10a08700d7590"
dependencies = [
"quote",
"syn",

View File

@@ -87,7 +87,7 @@ tower-http = { version = "0.6.8", features = ["catch-panic", "compression-br", "
tower-layer = "0.3"
tracing = { version = "0.1", default-features = false, features = ["std"] }
ureq = { version = "3.3.0", features = ["json"] }
vecdb = { version = "0.8.0", features = ["derive", "serde_json", "pco", "schemars"] }
vecdb = { version = "0.9.0", features = ["derive", "serde_json", "pco", "schemars"] }
# vecdb = { path = "../anydb/crates/vecdb", features = ["derive", "serde_json", "pco", "schemars"] }
[workspace.metadata.release]

View File

@@ -8195,7 +8195,7 @@ pub struct BrkClient {
impl BrkClient {
/// Client version.
pub const VERSION: &'static str = "v0.2.3";
pub const VERSION: &'static str = "v0.2.4";
/// Create a new client with the given base URL.
pub fn new(base_url: impl Into<String>) -> Self {

View File

@@ -53,7 +53,7 @@ impl Vecs {
let exit = exit.clone();
self.db.run_bg(move |db| {
let _lock = exit.lock();
db.compact()
db.compact_deferred_default()
});
Ok(())
}

View File

@@ -85,7 +85,7 @@ impl Vecs {
let exit = exit.clone();
self.db.run_bg(move |db| {
let _lock = exit.lock();
db.compact()
db.compact_deferred_default()
});
Ok(())
}

View File

@@ -504,7 +504,7 @@ impl Vecs {
let exit = exit.clone();
self.db.run_bg(move |db| {
let _lock = exit.lock();
db.compact()
db.compact_deferred_default()
});
Ok(())
}

View File

@@ -217,7 +217,7 @@ impl Vecs {
let exit = exit.clone();
self.db.run_bg(move |db| {
let _lock = exit.lock();
db.compact()
db.compact_deferred_default()
});
Ok(starting_indexes)
}

View File

@@ -204,7 +204,7 @@ impl Vecs {
let exit = exit.clone();
self.db.run_bg(move |db| {
let _lock = exit.lock();
db.compact()
db.compact_deferred_default()
});
Ok(())
}

View File

@@ -25,7 +25,7 @@ impl Vecs {
let exit = exit.clone();
self.db.run_bg(move |db| {
let _lock = exit.lock();
db.compact()
db.compact_deferred_default()
});
Ok(())
}

View File

@@ -275,7 +275,7 @@ impl Vecs {
let exit = exit.clone();
self.db.run_bg(move |db| {
let _lock = exit.lock();
db.compact()
db.compact_deferred_default()
});
Ok(())
}

View File

@@ -57,7 +57,7 @@ impl Vecs {
let exit = exit.clone();
self.db.run_bg(move |db| {
let _lock = exit.lock();
db.compact()
db.compact_deferred_default()
});
Ok(())
}

View File

@@ -44,7 +44,7 @@ impl Vecs {
let exit = exit.clone();
self.db.run_bg(move |db| {
let _lock = exit.lock();
db.compact()
db.compact_deferred_default()
});
Ok(())
}

View File

@@ -34,7 +34,7 @@ impl Vecs {
.compute(indexer, inputs, starting_indexes, exit)?;
self.db.run_bg(move |db| {
let _lock = lock;
db.compact()
db.compact_deferred_default()
});
Ok(())
}

View File

@@ -108,7 +108,7 @@ impl Vecs {
let exit = exit.clone();
self.db.run_bg(move |db| {
let _lock = exit.lock();
db.compact()
db.compact_deferred_default()
});
Ok(())
}

View File

@@ -51,7 +51,7 @@ impl Vecs {
let exit = exit.clone();
self.db.run_bg(move |db| {
let _lock = exit.lock();
db.compact()
db.compact_deferred_default()
});
Ok(())
}

View File

@@ -52,7 +52,7 @@ impl Vecs {
let exit = exit.clone();
self.db.run_bg(move |db| {
let _lock = exit.lock();
db.compact()
db.compact_deferred_default()
});
Ok(())
}

View File

@@ -25,7 +25,7 @@ impl Vecs {
let exit = exit.clone();
self.db.run_bg(move |db| {
let _lock = exit.lock();
db.compact()
db.compact_deferred_default()
});
Ok(())
}

View File

@@ -81,7 +81,7 @@ impl Vecs {
let exit = exit.clone();
self.db.run_bg(move |db| {
let _lock = exit.lock();
db.compact()
db.compact_deferred_default()
});
Ok(())

View File

@@ -62,7 +62,7 @@ impl Vecs {
let exit = exit.clone();
self.db.run_bg(move |db| {
let _lock = exit.lock();
db.compact()
db.compact_deferred_default()
});
Ok(())
}

View File

@@ -1,6 +1,11 @@
#![doc = include_str!("../README.md")]
use std::{fs, path::Path, thread, time::Instant};
use std::{
fs,
path::Path,
thread::{self, sleep},
time::{Duration, Instant},
};
use brk_error::Result;
use brk_iterator::Blocks;
@@ -8,7 +13,7 @@ use brk_rpc::Client;
use brk_types::Height;
use fjall::PersistMode;
use tracing::{debug, info};
use vecdb::{Exit, ReadOnlyClone, ReadableVec, Ro, Rw, StorageMode};
use vecdb::{Exit, RawDBError, ReadOnlyClone, ReadableVec, Ro, Rw, StorageMode};
mod constants;
mod indexes;
mod processor;
@@ -259,6 +264,8 @@ impl Indexer {
self.vecs.db.run_bg(move |db| {
let _lock = lock;
sleep(Duration::from_secs(5));
if !tasks.is_empty() {
let i = Instant::now();
for task in tasks {
@@ -269,11 +276,10 @@ impl Indexer {
let i = Instant::now();
fjall_db
.persist(PersistMode::SyncData)
.map_err(vecdb::RawDBError::other)?;
.map_err(RawDBError::other)?;
info!("Stores persisted in {:?}", i.elapsed());
}
db.flush()?;
db.compact()?;
Ok(())
});

View File

@@ -6381,7 +6381,7 @@ function createTransferPattern(client, acc) {
* @extends BrkClientBase
*/
class BrkClient extends BrkClientBase {
VERSION = "v0.2.3";
VERSION = "v0.2.4";
INDEXES = /** @type {const} */ ([
"minute10",

View File

@@ -40,5 +40,5 @@
"url": "git+https://github.com/bitcoinresearchkit/brk.git"
},
"type": "module",
"version": "0.2.3"
"version": "0.2.4"
}

View File

@@ -5679,7 +5679,7 @@ class SeriesTree:
class BrkClient(BrkClientBase):
"""Main BRK client with series tree and API methods."""
VERSION = "v0.2.3"
VERSION = "v0.2.4"
INDEXES = [
"minute10",

View File

@@ -1,6 +1,6 @@
[project]
name = "brk-client"
version = "0.2.3"
version = "0.2.4"
description = "Bitcoin on-chain analytics client — thousands of metrics, block explorer, and address index"
readme = "README.md"
requires-python = ">=3.9"