SlotArena

Trait SlotArena 

pub trait SlotArena: Send {
    // Required methods
    fn slot_bytes(&self) -> usize;
    fn num_slots(&self) -> usize;
    fn read_slot(&self, slot: usize, out: &mut [u8]) -> Result<(), Error>;
    fn write_slot(&mut self, slot: usize, bytes: &[u8]) -> Result<(), Error>;
}
Expand description

The generic paging core, lifted to avarok-tier (CUDA- and verbs-free). Re-exported under the avarok_tier names (no historical aliases). The hot tier: a RAM arena as a set of num_slots fixed-size slots. The cache peer implements this over its mmap’d MR (page-aligned → O_DIRECT-safe); in-process consumers use crate::VecSlotArena.

Required Methods§

fn slot_bytes(&self) -> usize

fn num_slots(&self) -> usize

fn read_slot(&self, slot: usize, out: &mut [u8]) -> Result<(), Error>

Copy arena slot → out (for spilling a victim to disk). out.len() MUST equal slot_bytes().

fn write_slot(&mut self, slot: usize, bytes: &[u8]) -> Result<(), Error>

Copy bytes → arena slot (for faulting a record back in). bytes.len() MUST equal slot_bytes().

Implementations on Foreign Types§

§

impl<T> SlotArena for Box<T>
where T: SlotArena + ?Sized,

§

fn slot_bytes(&self) -> usize

§

fn num_slots(&self) -> usize

§

fn read_slot(&self, slot: usize, out: &mut [u8]) -> Result<(), Error>

§

fn write_slot(&mut self, slot: usize, bytes: &[u8]) -> Result<(), Error>

Implementors§