Allow user to set an epoch margin for pruning

This commit is contained in:
Emilia Hane
2023-01-20 13:03:46 +01:00
parent d7fc24a9d5
commit 1812301c9c
6 changed files with 58 additions and 3 deletions

View File

@@ -9,6 +9,7 @@ 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;
pub const DEFAULT_BLOB_PUNE_MARGIN_EPOCHS: Option<u64> = None;
/// Database configuration parameters.
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
@@ -29,8 +30,11 @@ 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.
/// Frequency of blob pruning in epochs. Default: every epoch.
pub epochs_per_blob_prune: u64,
/// The margin for blob pruning in epochs. The oldest blobs are pruned up until
/// data_availability_boundary - blob_prune_margin_epochs. Default: 0.
pub blob_prune_margin_epochs: Option<u64>,
}
/// Variant of `StoreConfig` that gets written to disk. Contains immutable configuration params.
@@ -57,6 +61,7 @@ impl Default for StoreConfig {
prune_payloads: true,
prune_blobs: true,
epochs_per_blob_prune: DEFAULT_EPOCHS_PER_BLOB_PRUNE,
blob_prune_margin_epochs: DEFAULT_BLOB_PUNE_MARGIN_EPOCHS,
}
}
}