Trait rustdb::stg::PageStorage

source ·
pub trait PageStorage: Send + Sync {
Show 14 methods // Required methods fn is_new(&self) -> bool; fn info(&self) -> Box<dyn PageStorageInfo>; fn new_page(&mut self) -> u64; fn drop_page(&mut self, pn: u64); fn set_page(&mut self, pn: u64, data: Data); fn get_page(&self, pn: u64) -> Data; fn size(&self, pn: u64) -> usize; fn save(&mut self); fn rollback(&mut self); fn wait_complete(&self); fn get_free(&mut self) -> (FxHashSet<u64>, u64); fn renumber(&mut self, pn: u64) -> u64; fn load_free_pages(&mut self) -> Option<u64>; fn set_alloc_pn(&mut self, target: u64);
}
Expand description

Interface for page storage.

Required Methods§

source

fn is_new(&self) -> bool

Is the underlying storage new?

source

fn info(&self) -> Box<dyn PageStorageInfo>

Information about page sizes.

source

fn new_page(&mut self) -> u64

Make a new page, result is page number.

source

fn drop_page(&mut self, pn: u64)

Drop page number.

source

fn set_page(&mut self, pn: u64, data: Data)

Set contents of page.

source

fn get_page(&self, pn: u64) -> Data

Get contents of page.

source

fn size(&self, pn: u64) -> usize

Get page size (for repacking).

source

fn save(&mut self)

Save pages to underlying storage.

source

fn rollback(&mut self)

Undo changes since last save ( but set_page/renumber cannot be undone, only new_page and drop_page can be undone ).

source

fn wait_complete(&self)

Wait until save is complete.

source

fn get_free(&mut self) -> (FxHashSet<u64>, u64)

Get set of free pages and number of pages ever allocated ( for VERIFY builtin function ).

source

fn renumber(&mut self, pn: u64) -> u64

Renumber page.

source

fn load_free_pages(&mut self) -> Option<u64>

Load free pages in preparation for page renumbering. Returns number of used pages or None if there are no free pages.

source

fn set_alloc_pn(&mut self, target: u64)

Final part of page renumber operation.

Implementors§