Skip to main content

FdpStorageBackend

Struct FdpStorageBackend 

Source
pub struct FdpStorageBackend { /* private fields */ }
Expand description

FDP-aware storage backend.

Wraps another StorageBackend and emits FDP placement hints before writes on platforms that support NVMe 2.0 Flexible Data Placement. On unsupported platforms, the hint is silently ignored (logged at info!).

Implementations§

Source§

impl FdpStorageBackend

Source

pub fn new(inner: Box<dyn StorageBackend>) -> Self

Wrap an existing backend with FDP hints.

Trait Implementations§

Source§

impl StorageBackend for FdpStorageBackend

Source§

fn read( &self, path: &Path, offset: u64, data: &mut [u8], ) -> Result<usize, EdgestoreError>

Read data_len bytes from path starting at offset. Read more
Source§

fn write( &self, path: &Path, offset: u64, data: &[u8], ) -> Result<(), EdgestoreError>

Write data to path starting at offset. Read more
Source§

fn write_with_hint( &self, path: &Path, offset: u64, data: &[u8], hint: PlacementHint, ) -> Result<(), EdgestoreError>

Write data with an optional placement hint. Read more
Source§

fn flush(&self, path: &Path) -> Result<(), EdgestoreError>

Ensure all prior writes to path are durable.
Source§

fn read_all(&self, path: &Path) -> Result<Vec<u8>, EdgestoreError>

Read the entire file contents at path.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V