global: snapshot

This commit is contained in:
nym21
2026-03-13 16:27:10 +01:00
parent b2a1251774
commit 3709ceff8e
168 changed files with 2007 additions and 2008 deletions

View File

@@ -4,7 +4,7 @@ use brk_types::{StoredBool, TxIndex, Version};
use vecdb::{Database, LazyVecFrom2, ReadableCloneableVec};
use super::Vecs;
use crate::{indexes, internal::{CachedWindowStarts, ComputedPerBlockFull}};
use crate::{indexes, internal::{CachedWindowStarts, PerBlockFull}};
impl Vecs {
pub(crate) fn forced_import(
@@ -27,7 +27,7 @@ impl Vecs {
);
Ok(Self {
total: ComputedPerBlockFull::forced_import(
total: PerBlockFull::forced_import(
db,
"tx_count",
version,

View File

@@ -2,10 +2,10 @@ use brk_traversable::Traversable;
use brk_types::{Height, StoredBool, StoredU64, TxIndex};
use vecdb::{LazyVecFrom2, Rw, StorageMode};
use crate::internal::ComputedPerBlockFull;
use crate::internal::PerBlockFull;
#[derive(Traversable)]
pub struct Vecs<M: StorageMode = Rw> {
pub total: ComputedPerBlockFull<StoredU64, M>,
pub total: PerBlockFull<StoredU64, M>,
pub is_coinbase: LazyVecFrom2<TxIndex, StoredBool, TxIndex, Height, Height, TxIndex>,
}

View File

@@ -3,7 +3,7 @@ use brk_types::Version;
use vecdb::{Database, EagerVec, ImportableVec};
use super::Vecs;
use crate::internal::ComputedPerTxDistribution;
use crate::internal::PerTxDistribution;
/// Bump this when fee/feerate aggregation logic changes (e.g., skip coinbase).
const VERSION: Version = Version::new(2);
@@ -14,8 +14,8 @@ impl Vecs {
Ok(Self {
input_value: EagerVec::forced_import(db, "input_value", version)?,
output_value: EagerVec::forced_import(db, "output_value", version)?,
fee: ComputedPerTxDistribution::forced_import(db, "fee", v)?,
fee_rate: ComputedPerTxDistribution::forced_import(db, "fee_rate", v)?,
fee: PerTxDistribution::forced_import(db, "fee", v)?,
fee_rate: PerTxDistribution::forced_import(db, "fee_rate", v)?,
})
}
}

View File

@@ -2,12 +2,12 @@ use brk_traversable::Traversable;
use brk_types::{FeeRate, Sats, TxIndex};
use vecdb::{EagerVec, PcoVec, Rw, StorageMode};
use crate::internal::ComputedPerTxDistribution;
use crate::internal::PerTxDistribution;
#[derive(Traversable)]
pub struct Vecs<M: StorageMode = Rw> {
pub input_value: M::Stored<EagerVec<PcoVec<TxIndex, Sats>>>,
pub output_value: M::Stored<EagerVec<PcoVec<TxIndex, Sats>>>,
pub fee: ComputedPerTxDistribution<Sats, M>,
pub fee_rate: ComputedPerTxDistribution<FeeRate, M>,
pub fee: PerTxDistribution<Sats, M>,
pub fee_rate: PerTxDistribution<FeeRate, M>,
}

View File

@@ -6,7 +6,7 @@ use brk_types::Version;
use crate::{
indexes,
internal::{finalize_db, open_db, CachedWindowStarts},
internal::{CachedWindowStarts, db_utils::{finalize_db, open_db}},
};
use super::{CountVecs, FeesVecs, SizeVecs, Vecs, VersionsVecs, VolumeVecs};

View File

@@ -4,7 +4,7 @@ use brk_types::{TxIndex, VSize, Version, Weight};
use vecdb::{Database, LazyVecFrom2, ReadableCloneableVec};
use super::Vecs;
use crate::internal::{LazyPerTxDistribution, LazyPerTxDistributionDerived, VSizeToWeight};
use crate::internal::{LazyPerTxDistribution, LazyPerTxDistributionTransformed, VSizeToWeight};
impl Vecs {
pub(crate) fn forced_import(
@@ -33,7 +33,7 @@ impl Vecs {
|_index: TxIndex, base_size, total_size| Weight::from_sizes(*base_size, *total_size),
);
let weight = LazyPerTxDistributionDerived::new::<VSizeToWeight>(
let weight = LazyPerTxDistributionTransformed::new::<VSizeToWeight>(
"tx_weight",
version,
txindex_to_weight,

View File

@@ -2,10 +2,10 @@ use brk_traversable::Traversable;
use brk_types::{StoredU32, VSize, Weight};
use vecdb::{Rw, StorageMode};
use crate::internal::{LazyPerTxDistribution, LazyPerTxDistributionDerived};
use crate::internal::{LazyPerTxDistribution, LazyPerTxDistributionTransformed};
#[derive(Traversable)]
pub struct Vecs<M: StorageMode = Rw> {
pub vsize: LazyPerTxDistribution<VSize, StoredU32, StoredU32, M>,
pub weight: LazyPerTxDistributionDerived<Weight, StoredU32, StoredU32, VSize>,
pub weight: LazyPerTxDistributionTransformed<Weight, StoredU32, StoredU32, VSize>,
}

View File

@@ -4,7 +4,7 @@ use brk_types::{Indexes, StoredU64, TxVersion};
use vecdb::{Exit, ReadableVec, VecIndex};
use super::Vecs;
use crate::internal::ComputedPerBlockCumulativeWithSums;
use crate::internal::PerBlockCumulativeWithSums;
impl Vecs {
pub(crate) fn compute(
@@ -13,7 +13,7 @@ impl Vecs {
starting_indexes: &Indexes,
exit: &Exit,
) -> Result<()> {
let tx_vany = |tx_vany: &mut ComputedPerBlockCumulativeWithSums<StoredU64, StoredU64>,
let tx_vany = |tx_vany: &mut PerBlockCumulativeWithSums<StoredU64, StoredU64>,
txversion: TxVersion| {
let txversion_vec = &indexer.vecs.transactions.txversion;
// Cursor avoids per-transaction PcoVec page decompression.

View File

@@ -5,7 +5,7 @@ use vecdb::Database;
use super::Vecs;
use crate::{
indexes,
internal::{CachedWindowStarts, ComputedPerBlockCumulativeWithSums},
internal::{CachedWindowStarts, PerBlockCumulativeWithSums},
};
impl Vecs {
@@ -16,9 +16,9 @@ impl Vecs {
cached_starts: &CachedWindowStarts,
) -> Result<Self> {
Ok(Self {
v1: ComputedPerBlockCumulativeWithSums::forced_import(db, "tx_v1", version, indexes, cached_starts)?,
v2: ComputedPerBlockCumulativeWithSums::forced_import(db, "tx_v2", version, indexes, cached_starts)?,
v3: ComputedPerBlockCumulativeWithSums::forced_import(db, "tx_v3", version, indexes, cached_starts)?,
v1: PerBlockCumulativeWithSums::forced_import(db, "tx_v1", version, indexes, cached_starts)?,
v2: PerBlockCumulativeWithSums::forced_import(db, "tx_v2", version, indexes, cached_starts)?,
v3: PerBlockCumulativeWithSums::forced_import(db, "tx_v3", version, indexes, cached_starts)?,
})
}
}

View File

@@ -2,11 +2,11 @@ use brk_traversable::Traversable;
use brk_types::StoredU64;
use vecdb::{Rw, StorageMode};
use crate::internal::ComputedPerBlockCumulativeWithSums;
use crate::internal::PerBlockCumulativeWithSums;
#[derive(Traversable)]
pub struct Vecs<M: StorageMode = Rw> {
pub v1: ComputedPerBlockCumulativeWithSums<StoredU64, StoredU64, M>,
pub v2: ComputedPerBlockCumulativeWithSums<StoredU64, StoredU64, M>,
pub v3: ComputedPerBlockCumulativeWithSums<StoredU64, StoredU64, M>,
pub v1: PerBlockCumulativeWithSums<StoredU64, StoredU64, M>,
pub v2: PerBlockCumulativeWithSums<StoredU64, StoredU64, M>,
pub v3: PerBlockCumulativeWithSums<StoredU64, StoredU64, M>,
}

View File

@@ -57,7 +57,7 @@ impl Vecs {
.height
.compute_binary::<_, Timestamp, PerSec>(
starting_indexes.height,
&count_vecs.total.raw.height,
&count_vecs.total.base.height,
&blocks.interval.height,
exit,
)?;

View File

@@ -5,7 +5,7 @@ use vecdb::Database;
use super::Vecs;
use crate::{
indexes,
internal::{AmountPerBlockCumulativeWithSums, CachedWindowStarts, ComputedPerBlock},
internal::{AmountPerBlockCumulativeWithSums, CachedWindowStarts, PerBlock},
};
impl Vecs {
@@ -31,14 +31,14 @@ impl Vecs {
indexes,
cached_starts,
)?,
tx_per_sec: ComputedPerBlock::forced_import(db, "tx_per_sec", version + v2, indexes)?,
outputs_per_sec: ComputedPerBlock::forced_import(
tx_per_sec: PerBlock::forced_import(db, "tx_per_sec", version + v2, indexes)?,
outputs_per_sec: PerBlock::forced_import(
db,
"outputs_per_sec",
version + v2,
indexes,
)?,
inputs_per_sec: ComputedPerBlock::forced_import(
inputs_per_sec: PerBlock::forced_import(
db,
"inputs_per_sec",
version + v2,

View File

@@ -2,13 +2,13 @@ use brk_traversable::Traversable;
use brk_types::StoredF32;
use vecdb::{Rw, StorageMode};
use crate::internal::{AmountPerBlockCumulativeWithSums, ComputedPerBlock};
use crate::internal::{AmountPerBlockCumulativeWithSums, PerBlock};
#[derive(Traversable)]
pub struct Vecs<M: StorageMode = Rw> {
pub sent_sum: AmountPerBlockCumulativeWithSums<M>,
pub received_sum: AmountPerBlockCumulativeWithSums<M>,
pub tx_per_sec: ComputedPerBlock<StoredF32, M>,
pub outputs_per_sec: ComputedPerBlock<StoredF32, M>,
pub inputs_per_sec: ComputedPerBlock<StoredF32, M>,
pub tx_per_sec: PerBlock<StoredF32, M>,
pub outputs_per_sec: PerBlock<StoredF32, M>,
pub inputs_per_sec: PerBlock<StoredF32, M>,
}