Trait pagecache::Materializer [] [src]

pub trait Materializer {
    type PageFrag;
    type Recovery;
    fn new(_: &Option<Self::Recovery>) -> Self
    where
        Self: Sized
;
fn merge(&self, _: &[&Self::PageFrag]) -> Self::PageFrag;
fn recover(&self, _: &Self::PageFrag) -> Option<Self::Recovery>; }

A user of a PageCache needs to provide a Materializer which handles the merging of page fragments.

Associated Types

The possibly fragmented page, written to log storage sequentially, and read in parallel from multiple locations on disk when serving a request to read the page. These will be merged to a single version at read time, and possibly cached.

The higher-level recovery state, as described by Materializer::recover

Required Methods

Create a new Materializer with the previously recovered state if any existed.

Used to merge chains of partial pages into a form that is useful for the PageCache owner.

Used to feed custom recovery information back to a higher-level abstraction during startup. For example, a B-Link tree must know what the current root node is before it can start serving requests.

Implementors