pub struct PosixBackend { /* private fields */ }Implementations§
Source§impl PosixBackend
impl PosixBackend
Source§impl PosixBackend
impl PosixBackend
Sourcepub fn drop_pagecache(&self)
pub fn drop_pagecache(&self)
2026-09-25: Advise the kernel to drop every layer file’s page cache
(POSIX_FADV_DONTNEED), so later reads go to the device. A no-op on
non-unix targets, where reads may still come from the cache.
Trait Implementations§
Source§impl StorageBackend for PosixBackend
impl StorageBackend for PosixBackend
Source§fn read(&mut self, requests: &[ReadRequest], stream: u64) -> Result<()>
fn read(&mut self, requests: &[ReadRequest], stream: u64) -> Result<()>
2026-09-25: Fill every request’s destination. Returns once the data is
in place, so work the caller enqueues on
stream afterwards reads it.Source§fn write_from_host(&mut self, key: GroupKey, src: &[u8]) -> Result<()>
fn write_from_host(&mut self, key: GroupKey, src: &[u8]) -> Result<()>
2026-09-25: Write one group from host memory;
src is group_bytes()
long.Source§fn group_layout(&self) -> GroupLayout
fn group_layout(&self) -> GroupLayout
2026-09-25: The geometry the default block methods fan out with.
Source§fn read_async(&mut self, requests: &[ReadRequest], stream: u64) -> Result<()>
fn read_async(&mut self, requests: &[ReadRequest], stream: u64) -> Result<()>
2026-09-25: Like
read, but an implementation may return before the
copies on stream finish. The default calls read.Source§fn read_blocks(
&mut self,
requests: &[BlockReadRequest],
stream: u64,
) -> Result<()>
fn read_blocks( &mut self, requests: &[BlockReadRequest], stream: u64, ) -> Result<()>
2026-09-25: Read whole blocks, with the stream contract of
read. The
default fans out to read through expand_blocks_to_groups.Source§fn read_blocks_async(
&mut self,
requests: &[BlockReadRequest],
stream: u64,
) -> Result<()>
fn read_blocks_async( &mut self, requests: &[BlockReadRequest], stream: u64, ) -> Result<()>
2026-09-25: The block form of
read_async. The default fans out to
read_async.Source§fn write_block_from_host(
&mut self,
base_key: GroupKey,
src: &[u8],
) -> Result<()>
fn write_block_from_host( &mut self, base_key: GroupKey, src: &[u8], ) -> Result<()>
2026-09-25: Write one whole block.
src is block_bytes() laid out
[K0, …, K(nkv-1), V0, …, V(nkv-1)] at group_stride pitch; only
base_key’s layer and block are read. The default rejects any other
length, then calls write_from_host for K(kh) and V(kh) of each head.Source§fn write_blocks_run(
&mut self,
base_key: GroupKey,
run_len: usize,
src: &[u8],
) -> Result<()>
fn write_blocks_run( &mut self, base_key: GroupKey, run_len: usize, src: &[u8], ) -> Result<()>
2026-09-25: Write
run_len consecutive blocks of one layer, starting at
base_key’s block; src is run_len · block_bytes(). The default
rejects any other length, then calls write_block_from_host once per
block.Source§fn supports_write_run_coalescing(&self) -> bool
fn supports_write_run_coalescing(&self) -> bool
2026-09-25: Whether this backend serves
write_blocks_run as one wide
op. The default is false.Auto Trait Implementations§
impl Freeze for PosixBackend
impl RefUnwindSafe for PosixBackend
impl Send for PosixBackend
impl Sync for PosixBackend
impl Unpin for PosixBackend
impl UnwindSafe for PosixBackend
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more