Struct rsdb::PageCache [] [src]

pub struct PageCache<PM, L, P, R> { /* fields omitted */ }

A lock-free pagecache.

Methods

impl<PM, P, R> PageCache<PM, LockFreeLog, P, R> where
    PM: Materializer<PartialPage = P, Recovery = R>,
    PM: Send + Sync,
    P: Debug + PartialEq + Clone + Serialize + DeserializeOwned + Send,
    R: Debug + PartialEq + Clone + Serialize + DeserializeOwned,
    PM::MaterializedPage: Debug
[src]

Instantiate a new PageCache.

Return the configuration used by the underlying system.

Read updates from the log, apply them to our pagecache.

Create a new page, trying to reuse old freed pages if possible to maximize underlying Radix pointer density.

Free a particular page.

Try to retrieve a page by its logical ID.

Replace an existing page with a different set of PartialPages.

Try to atomically prepend a Materializer::PartialPage to the page.

Trait Implementations

impl<PM, L, P, R> Send for PageCache<PM, L, P, R> where
    PM: Send,
    L: Send,
    R: Send
[src]

impl<PM, L, P, R> Sync for PageCache<PM, L, P, R> where
    PM: Sync,
    L: Sync
[src]

impl<PM, L, P, R> Debug for PageCache<PM, L, P, R>
[src]

Formats the value using the given formatter.