mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-08 09:16:00 +00:00
Enable skipping blob pruning at each epoch
This commit is contained in:
@@ -8,6 +8,7 @@ pub const PREV_DEFAULT_SLOTS_PER_RESTORE_POINT: u64 = 2048;
|
||||
pub const DEFAULT_SLOTS_PER_RESTORE_POINT: u64 = 8192;
|
||||
pub const DEFAULT_BLOCK_CACHE_SIZE: usize = 5;
|
||||
pub const DEFAULT_BLOB_CACHE_SIZE: usize = 5;
|
||||
pub const DEFAULT_EPOCHS_PER_BLOB_PRUNE: u64 = 1;
|
||||
|
||||
/// Database configuration parameters.
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||||
@@ -28,6 +29,8 @@ pub struct StoreConfig {
|
||||
pub prune_payloads: bool,
|
||||
/// Whether to prune blobs older than the blob data availability boundary.
|
||||
pub prune_blobs: bool,
|
||||
/// Frequency of blob pruning. Default: every epoch.
|
||||
pub epochs_per_blob_prune: u64,
|
||||
}
|
||||
|
||||
/// Variant of `StoreConfig` that gets written to disk. Contains immutable configuration params.
|
||||
@@ -53,6 +56,7 @@ impl Default for StoreConfig {
|
||||
compact_on_prune: true,
|
||||
prune_payloads: true,
|
||||
prune_blobs: true,
|
||||
epochs_per_blob_prune: DEFAULT_EPOCHS_PER_BLOB_PRUNE,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1721,9 +1721,13 @@ impl<E: EthSpec, Hot: ItemStore<E>, Cold: ItemStore<E>> HotColdDB<E, Hot, Cold>
|
||||
}
|
||||
};
|
||||
|
||||
if blob_info.last_pruned_epoch == blob_info.next_epoch_to_prune && !force {
|
||||
info!(self.log, "Blobs sidecars are pruned");
|
||||
return Ok(());
|
||||
if !force {
|
||||
let epochs_per_blob_prune =
|
||||
Epoch::new(self.get_config().epochs_per_blob_prune * E::slots_per_epoch());
|
||||
if blob_info.last_pruned_epoch + epochs_per_blob_prune > blob_info.next_epoch_to_prune {
|
||||
info!(self.log, "Blobs sidecars are pruned");
|
||||
return Ok(());
|
||||
}
|
||||
}
|
||||
|
||||
let dab_state_root = blob_info.data_availability_boundary.state_root;
|
||||
@@ -1840,7 +1844,7 @@ pub fn migrate_database<E: EthSpec, Hot: ItemStore<E>, Cold: ItemStore<E>>(
|
||||
}
|
||||
|
||||
// Prune blobs before migration.
|
||||
store.try_prune_blobs(false)?;
|
||||
store.try_prune_blobs(true)?;
|
||||
|
||||
let mut hot_db_ops: Vec<StoreOp<E>> = Vec::new();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user