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
type PageFrag
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.
type Recovery
The higher-level recovery state, as
described by Materializer::recover
Required Methods
fn new(_: &Option<Self::Recovery>) -> Self where
Self: Sized,
Self: Sized,
Create a new Materializer
with the previously recovered
state if any existed.
fn merge(&self, _: &[&Self::PageFrag]) -> Self::PageFrag
Used to merge chains of partial pages into a form
that is useful for the PageCache
owner.
fn recover(&self, _: &Self::PageFrag) -> Option<Self::Recovery>
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
impl Materializer for NullMaterializer type PageFrag = (); type Recovery = ();