pub struct FileSystem<T: ShoalTable> {
pub conf: Conf,
pub intent_tx: AsyncSender<CompactionJob>,
pub tasks: FuturesUnordered<Task<Result<(), ServerError>>>,
/* private fields */
}Expand description
Store shoal data in an existing filesytem for persistence
Fields§
§conf: ConfThe config for shoal
intent_tx: AsyncSender<CompactionJob>The channel to send intent log compactions on
tasks: FuturesUnordered<Task<Result<(), ServerError>>>The different tasks spawned by this shards file system storage engine
Trait Implementations§
Source§impl<T: ShoalTable + 'static> ShoalStorage<T> for FileSystem<T>
impl<T: ShoalTable + 'static> ShoalStorage<T> for FileSystem<T>
Source§async fn new(
shard_name: &str,
conf: &Conf,
medium_priority: TaskQueueHandle,
) -> Result<Self, ServerError>
async fn new( shard_name: &str, conf: &Conf, medium_priority: TaskQueueHandle, ) -> Result<Self, ServerError>
Create a new instance of this storage engine
§Arguments
shard_name- The id of the shard that owns this tableconf- The Shoal config
Source§async fn delete(
&mut self,
partition_key: u64,
sort_key: T::Sort,
) -> Result<u64, ServerError>
async fn delete( &mut self, partition_key: u64, sort_key: T::Sort, ) -> Result<u64, ServerError>
Delete a row from storage
§Arguments
partition_key- The key to the partition we are deleting data fromsort_key- The sort key to use to delete data from with in a partition
Source§fn add_pending(
&mut self,
meta: QueryMetadata,
pos: u64,
response: ResponseAction<T>,
)
fn add_pending( &mut self, meta: QueryMetadata, pos: u64, response: ResponseAction<T>, )
Add a pending response action thats data is still being flushed
§Arguments
meta- The metadata for this querypos- The position at which this entry will have been flushed to diskresponse- The pending response action
Source§async fn get_flushed(
&mut self,
flushed: &mut Vec<(SocketAddr, Response<T>)>,
) -> Result<(), ServerError>
async fn get_flushed( &mut self, flushed: &mut Vec<(SocketAddr, Response<T>)>, ) -> Result<(), ServerError>
Source§async fn flush(&mut self) -> Result<(), ServerError>
async fn flush(&mut self) -> Result<(), ServerError>
Flush all currently pending writes to storage
Source§async fn read_intents(
path: &PathBuf,
partitions: &mut HashMap<u64, Partition<T>>,
) -> Result<(), ServerError>
async fn read_intents( path: &PathBuf, partitions: &mut HashMap<u64, Partition<T>>, ) -> Result<(), ServerError>
Auto Trait Implementations§
impl<T> !Freeze for FileSystem<T>
impl<T> !RefUnwindSafe for FileSystem<T>
impl<T> !Send for FileSystem<T>
impl<T> !Sync for FileSystem<T>
impl<T> Unpin for FileSystem<T>where
T: Unpin,
impl<T> !UnwindSafe for FileSystem<T>
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.