pub struct LocalEmbeddedStore { /* private fields */ }Expand description
Worker-owned view of the shards assigned to one local server worker.
This is the sharded counterpart to EmbeddedStore. An EmbeddedStore can
be split into one WorkerLocalEmbeddedStore per worker. Each handle owns
only its assigned shards and exposes local operations through &mut self,
letting hot paths skip shared RwLock traffic when the key or session route
belongs to this worker.
Methods ending in _if_local return LocalRouteError when a key/session
routes to another worker. Methods ending in _local assume the caller has
already checked routing and use debug assertions for that contract.
Implementations§
Source§impl WorkerLocalEmbeddedStore
impl WorkerLocalEmbeddedStore
Sourcepub fn from_owned_worker(inner: OwnedEmbeddedWorkerShards) -> Self
pub fn from_owned_worker(inner: OwnedEmbeddedWorkerShards) -> Self
Wrap the shard bundle assigned to one worker.
pub fn worker_shard_count(&self) -> usize
pub fn shard_count(&self) -> usize
pub fn route_mode(&self) -> EmbeddedRouteMode
pub fn owns_shard(&self, shard_id: usize) -> bool
pub fn route_key(&self, key: &[u8]) -> EmbeddedKeyRoute
pub fn prepare_point_key(&self, key: &[u8]) -> PreparedPointKey
pub fn prepare_point_key_if_local( &self, key: &[u8], ) -> Result<PreparedPointKey, LocalRouteError>
pub fn route_session(&self, session_prefix: &[u8]) -> EmbeddedSessionRoute
pub fn key_is_local(&self, key: &[u8]) -> bool
pub fn session_is_local(&self, session_prefix: &[u8]) -> bool
pub fn stream_session_transfer<B, F>( &mut self, request: &CudaSessionTransferRequest, on_chunk: F, ) -> ControlFlow<B, CudaSessionTransferStats>
pub fn stream_session_transfer_if_local<B, F>( &mut self, request: &CudaSessionTransferRequest, on_chunk: F, ) -> Result<ControlFlow<B, CudaSessionTransferStats>, LocalRouteError>
Source§impl WorkerLocalEmbeddedStore
impl WorkerLocalEmbeddedStore
pub fn delete(&mut self, key: &[u8]) -> bool
pub fn delete_if_local(&mut self, key: &[u8]) -> Result<bool, LocalRouteError>
pub fn exists(&mut self, key: &[u8]) -> bool
pub fn exists_if_local(&mut self, key: &[u8]) -> Result<bool, LocalRouteError>
pub fn ttl_seconds(&mut self, key: &[u8]) -> i64
pub fn ttl_seconds_if_local( &mut self, key: &[u8], ) -> Result<i64, LocalRouteError>
pub fn pttl_millis(&mut self, key: &[u8]) -> i64
pub fn pttl_millis_if_local( &mut self, key: &[u8], ) -> Result<i64, LocalRouteError>
pub fn expire(&mut self, key: &[u8], expire_at_ms: u64) -> bool
pub fn expire_if_local( &mut self, key: &[u8], expire_at_ms: u64, ) -> Result<bool, LocalRouteError>
pub fn persist(&mut self, key: &[u8]) -> bool
pub fn persist_if_local(&mut self, key: &[u8]) -> Result<bool, LocalRouteError>
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub fn process_maintenance(&mut self) -> usize
pub fn stats_snapshot( &self, ) -> (TierStatsSnapshot, TierStatsSnapshot, TierStatsSnapshot)
Source§impl WorkerLocalEmbeddedStore
impl WorkerLocalEmbeddedStore
pub fn get(&mut self, key: &[u8]) -> Option<Bytes>
pub fn get_if_local( &mut self, key: &[u8], ) -> Result<Option<Bytes>, LocalRouteError>
pub fn get_view<'a>(&'a mut self, key: &[u8]) -> WorkerLocalReadView<'a>
pub fn get_owned_view_local(&mut self, key: &[u8]) -> OwnedEmbeddedReadView
pub fn get_view_if_local<'a>( &'a mut self, key: &[u8], ) -> Result<WorkerLocalReadView<'a>, LocalRouteError>
pub fn get_view_routed_local<'a>( &'a mut self, route: EmbeddedKeyRoute, key: &[u8], ) -> WorkerLocalReadView<'a>
pub fn get_view_routed_no_ttl<'a>( &'a mut self, route: EmbeddedKeyRoute, key: &[u8], ) -> WorkerLocalReadView<'a>
pub fn get_view_routed_no_ttl_if_local<'a>( &'a mut self, route: EmbeddedKeyRoute, key: &[u8], ) -> Result<WorkerLocalReadView<'a>, LocalRouteError>
pub fn get_point_view_routed_no_ttl_local<'a>( &'a mut self, route: EmbeddedKeyRoute, key: &[u8], ) -> WorkerLocalReadView<'a>
pub fn get_point_ref_routed_no_ttl_local<'a>( &'a mut self, route: EmbeddedKeyRoute, key: &[u8], ) -> Option<&'a [u8]>
pub fn get_prepared_point_view_no_ttl_local<'a>( &'a mut self, prepared: &PreparedPointKey, ) -> WorkerLocalReadView<'a>
pub fn get_prepared_point_ref_no_ttl_local<'a>( &'a mut self, prepared: &PreparedPointKey, ) -> Option<&'a [u8]>
pub fn get_view_routed_no_ttl_local<'a>( &'a mut self, route: EmbeddedKeyRoute, key: &[u8], ) -> WorkerLocalReadView<'a>
pub fn get_ref_routed_no_ttl_if_local<'a>( &'a mut self, route: EmbeddedKeyRoute, key: &[u8], ) -> Result<Option<&'a [u8]>, LocalRouteError>
pub fn get_ref_routed_no_ttl_local<'a>( &'a mut self, route: EmbeddedKeyRoute, key: &[u8], ) -> Option<&'a [u8]>
pub fn batch_get(&mut self, keys: Vec<Bytes>) -> Vec<Option<Bytes>>
pub fn batch_get_if_local( &mut self, keys: Vec<Bytes>, ) -> Result<Vec<Option<Bytes>>, LocalRouteError>
pub fn batch_get_view<'a>( &'a mut self, keys: &[Bytes], ) -> WorkerLocalBatchReadView<'a>
pub fn batch_get_owned_view_local( &mut self, keys: &[Bytes], ) -> OwnedEmbeddedBatchReadView
pub fn batch_get_view_if_local<'a>( &'a mut self, keys: &[Bytes], ) -> Result<WorkerLocalBatchReadView<'a>, LocalRouteError>
pub fn batch_get_session_view<'a>( &'a mut self, session_prefix: &[u8], keys: &[Bytes], ) -> WorkerLocalSessionBatchView<'a>
pub fn batch_get_session_view_if_local<'a>( &'a mut self, session_prefix: &[u8], keys: &[Bytes], ) -> Result<WorkerLocalSessionBatchView<'a>, LocalRouteError>
pub fn batch_get_session_owned_view_local( &mut self, session_prefix: &[u8], keys: &[Bytes], ) -> OwnedEmbeddedBatchReadView
pub fn batch_get_session_view_prehashed_if_local<'a>( &'a mut self, session_prefix: &[u8], keys: &[Bytes], key_hashes: &[u64], ) -> Result<WorkerLocalSessionBatchView<'a>, LocalRouteError>
pub fn batch_get_session_owned_view_prehashed_local( &mut self, session_prefix: &[u8], keys: &[Bytes], key_hashes: &[u64], ) -> OwnedEmbeddedBatchReadView
pub fn batch_get_session_packed( &mut self, session_prefix: &[u8], keys: &[Bytes], ) -> PackedBatch
pub fn batch_get_session_packed_if_local( &mut self, session_prefix: &[u8], keys: &[Bytes], ) -> Result<PackedBatch, LocalRouteError>
pub fn batch_get_session_packed_view( &mut self, session_prefix: &[u8], keys: &[Bytes], ) -> Option<OwnedEmbeddedSessionPackedView>
pub fn batch_get_session_packed_view_if_local( &mut self, session_prefix: &[u8], keys: &[Bytes], ) -> Result<Option<OwnedEmbeddedSessionPackedView>, LocalRouteError>
pub fn batch_get_session_packed_view_prehashed_if_local( &mut self, session_prefix: &[u8], keys: &[Bytes], key_hashes: &[u64], ) -> Result<Option<OwnedEmbeddedSessionPackedView>, LocalRouteError>
pub fn batch_get_packed(&mut self, keys: &[Bytes]) -> PackedBatch
pub fn batch_get_packed_if_local( &mut self, keys: &[Bytes], ) -> Result<PackedBatch, LocalRouteError>
Source§impl WorkerLocalEmbeddedStore
impl WorkerLocalEmbeddedStore
Sourcepub fn install_local(self) -> Result<(), LocalStoreInstallError>
pub fn install_local(self) -> Result<(), LocalStoreInstallError>
Install this store into the current thread’s local worker slot.
Only one worker-local store can be installed per thread. Use
crate::storage::take_local_embedded_store to remove it again.