pub struct InmemoryRemoteLogMetadataManager { /* private fields */ }Expand description
In-memory RemoteLogMetadataManager: one
RemoteLogMetadataCache per partition behind a single
mutex. Not durable — state is lost on restart — but enforces the full
lifecycle state machine, so it is a faithful stand-in for the
topic-backed production manager in tests and single-process setups.
Implementations§
Source§impl InmemoryRemoteLogMetadataManager
impl InmemoryRemoteLogMetadataManager
Sourcepub fn export(&self) -> RlmmCacheDump
pub fn export(&self) -> RlmmCacheDump
Dump every partition’s segment + partition-delete metadata for
snapshotting. The result is order-independent;
Self::import re-derives ordering and the epoch index.
Sourcepub fn import(&self, dump: RlmmCacheDump)
pub fn import(&self, dump: RlmmCacheDump)
Seed the cache from a dump, bypassing transition validation Intended for a freshly-constructed manager during snapshot restore; existing partitions are overwritten.
Trait Implementations§
Source§impl Default for InmemoryRemoteLogMetadataManager
impl Default for InmemoryRemoteLogMetadataManager
Source§fn default() -> InmemoryRemoteLogMetadataManager
fn default() -> InmemoryRemoteLogMetadataManager
Returns the “default value” for a type. Read more
Source§impl RemoteLogMetadataManager for InmemoryRemoteLogMetadataManager
impl RemoteLogMetadataManager for InmemoryRemoteLogMetadataManager
Source§fn add_remote_log_segment_metadata(
&self,
metadata: RemoteLogSegmentMetadata,
) -> Result<(), RemoteStorageError>
fn add_remote_log_segment_metadata( &self, metadata: RemoteLogSegmentMetadata, ) -> Result<(), RemoteStorageError>
Record a newly-started segment copy. The metadata’s state must be
CopySegmentStarted
and its id must not already be known. Read moreSource§fn update_remote_log_segment_metadata(
&self,
update: RemoteLogSegmentMetadataUpdate,
) -> Result<(), RemoteStorageError>
fn update_remote_log_segment_metadata( &self, update: RemoteLogSegmentMetadataUpdate, ) -> Result<(), RemoteStorageError>
Advance a known segment’s lifecycle state. Read more
Source§fn remote_log_segment_metadata(
&self,
topic_id_partition: &TopicIdPartition,
leader_epoch: i32,
offset: i64,
) -> Result<Option<RemoteLogSegmentMetadata>, RemoteStorageError>
fn remote_log_segment_metadata( &self, topic_id_partition: &TopicIdPartition, leader_epoch: i32, offset: i64, ) -> Result<Option<RemoteLogSegmentMetadata>, RemoteStorageError>
Source§fn highest_offset_for_epoch(
&self,
topic_id_partition: &TopicIdPartition,
leader_epoch: i32,
) -> Result<Option<i64>, RemoteStorageError>
fn highest_offset_for_epoch( &self, topic_id_partition: &TopicIdPartition, leader_epoch: i32, ) -> Result<Option<i64>, RemoteStorageError>
The highest offset that the remote tier holds for
leader_epoch
(the max end_offset across finished segments carrying that epoch). Read moreSource§fn list_remote_log_segments(
&self,
topic_id_partition: &TopicIdPartition,
) -> Result<Vec<RemoteLogSegmentMetadata>, RemoteStorageError>
fn list_remote_log_segments( &self, topic_id_partition: &TopicIdPartition, ) -> Result<Vec<RemoteLogSegmentMetadata>, RemoteStorageError>
All segments known for a partition, ordered by
start_offset
(regardless of state). Read moreSource§fn list_remote_log_segments_by_epoch(
&self,
topic_id_partition: &TopicIdPartition,
leader_epoch: i32,
) -> Result<Vec<RemoteLogSegmentMetadata>, RemoteStorageError>
fn list_remote_log_segments_by_epoch( &self, topic_id_partition: &TopicIdPartition, leader_epoch: i32, ) -> Result<Vec<RemoteLogSegmentMetadata>, RemoteStorageError>
Source§fn put_remote_partition_delete_metadata(
&self,
metadata: RemotePartitionDeleteMetadata,
) -> Result<(), RemoteStorageError>
fn put_remote_partition_delete_metadata( &self, metadata: RemotePartitionDeleteMetadata, ) -> Result<(), RemoteStorageError>
Record a partition-delete lifecycle event. Read more
Auto Trait Implementations§
impl !Freeze for InmemoryRemoteLogMetadataManager
impl RefUnwindSafe for InmemoryRemoteLogMetadataManager
impl Send for InmemoryRemoteLogMetadataManager
impl Sync for InmemoryRemoteLogMetadataManager
impl Unpin for InmemoryRemoteLogMetadataManager
impl UnsafeUnpin for InmemoryRemoteLogMetadataManager
impl UnwindSafe for InmemoryRemoteLogMetadataManager
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
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more