Trait reth_prune::segments::Segment

source ·
pub trait Segment<Provider>:
    Debug
    + Send
    + Sync {
    // Required methods
    fn segment(&self) -> PruneSegment;
    fn mode(&self) -> Option<PruneMode>;
    fn purpose(&self) -> PrunePurpose;
    fn prune(
        &self,
        provider: &Provider,
        input: PruneInput,
    ) -> Result<SegmentOutput, PrunerError>;

    // Provided method
    fn save_checkpoint(
        &self,
        provider: &Provider,
        checkpoint: PruneCheckpoint,
    ) -> ProviderResult<()>
       where Provider: PruneCheckpointWriter { ... }
}
Expand description

A segment represents a pruning of some portion of the data.

Segments are called from Pruner with the following lifecycle:

  1. Call Segment::prune with delete_limit of PruneInput.
  2. If Segment::prune returned a Some in checkpoint of SegmentOutput, call Segment::save_checkpoint.
  3. Subtract pruned of SegmentOutput from delete_limit of next PruneInput.

Required Methods§

source

fn segment(&self) -> PruneSegment

Segment of data that’s pruned.

source

fn mode(&self) -> Option<PruneMode>

Prune mode with which the segment was initialized.

source

fn purpose(&self) -> PrunePurpose

Purpose of the segment.

source

fn prune( &self, provider: &Provider, input: PruneInput, ) -> Result<SegmentOutput, PrunerError>

Prune data for Self::segment using the provided input.

Provided Methods§

source

fn save_checkpoint( &self, provider: &Provider, checkpoint: PruneCheckpoint, ) -> ProviderResult<()>
where Provider: PruneCheckpointWriter,

Save checkpoint for Self::segment to the database.

Implementors§

source§

impl<Provider> Segment<Provider> for AccountHistory
where Provider: DBProvider<Tx: DbTxMut>,

source§

impl<Provider> Segment<Provider> for ReceiptsByLogs
where Provider: DBProvider<Tx: DbTxMut> + PruneCheckpointWriter + TransactionsProvider + BlockReader,

source§

impl<Provider> Segment<Provider> for SenderRecovery
where Provider: DBProvider<Tx: DbTxMut> + TransactionsProvider + BlockReader,

source§

impl<Provider> Segment<Provider> for reth_prune::segments::StaticFileReceipts
where Provider: DBProvider<Tx: DbTxMut> + PruneCheckpointWriter + TransactionsProvider + BlockReader,

source§

impl<Provider> Segment<Provider> for Transactions
where Provider: DBProvider<Tx: DbTxMut> + TransactionsProvider + BlockReader,

source§

impl<Provider> Segment<Provider> for StorageHistory
where Provider: DBProvider<Tx: DbTxMut>,

source§

impl<Provider> Segment<Provider> for TransactionLookup
where Provider: DBProvider<Tx: DbTxMut> + TransactionsProvider + BlockReader,

source§

impl<Provider> Segment<Provider> for reth_prune::segments::UserReceipts
where Provider: DBProvider<Tx: DbTxMut> + PruneCheckpointWriter + TransactionsProvider + BlockReader,

source§

impl<Provider: DBProvider<Tx: DbTxMut>> Segment<Provider> for Headers