pub struct SstableIterator {
block_iter: Option<BlockIterator>,
cur_idx: usize,
preload_stream: Option<Box<dyn BlockStream>>,
pub sst: TableHolder,
preload_end_block_idx: usize,
preload_retry_times: usize,
sstable_store: SstableStoreRef,
stats: StoreLocalStatistic,
options: Arc<SstableIteratorReadOptions>,
}
Expand description
Iterates on a sstable.
Fields§
§block_iter: Option<BlockIterator>
The iterator of the current block.
cur_idx: usize
Current block index.
preload_stream: Option<Box<dyn BlockStream>>
§sst: TableHolder
Reference to the sst
preload_end_block_idx: usize
§preload_retry_times: usize
§sstable_store: SstableStoreRef
§stats: StoreLocalStatistic
§options: Arc<SstableIteratorReadOptions>
Implementations§
source§impl SstableIterator
impl SstableIterator
pub fn new( sstable: TableHolder, sstable_store: SstableStoreRef, options: Arc<SstableIteratorReadOptions>, ) -> Self
fn init_block_prefetch_range(&mut self, start_idx: usize)
Trait Implementations§
source§impl HummockIterator for SstableIterator
impl HummockIterator for SstableIterator
type Direction = Forward
source§async fn next(&mut self) -> HummockResult<()>
async fn next(&mut self) -> HummockResult<()>
Moves a valid iterator to the next key. Read more
source§fn value(&self) -> HummockValue<&[u8]>
fn value(&self) -> HummockValue<&[u8]>
Retrieves the current value, decoded as
HummockValue
. Read moresource§async fn rewind(&mut self) -> HummockResult<()>
async fn rewind(&mut self) -> HummockResult<()>
Resets the position of the iterator. Read more
source§async fn seek<'a>(&'a mut self, key: FullKey<&'a [u8]>) -> HummockResult<()>
async fn seek<'a>(&'a mut self, key: FullKey<&'a [u8]>) -> HummockResult<()>
Resets iterator and seeks to the first position where the key >= provided key, or key <=
provided key if this is a backward iterator. Read more
source§fn collect_local_statistic(&self, stats: &mut StoreLocalStatistic)
fn collect_local_statistic(&self, stats: &mut StoreLocalStatistic)
take local statistic info from iterator to report metrics.
source§fn value_meta(&self) -> ValueMeta
fn value_meta(&self) -> ValueMeta
Returns value meta.
source§impl SstableIteratorType for SstableIterator
impl SstableIteratorType for SstableIterator
fn create( sstable: TableHolder, sstable_store: SstableStoreRef, options: Arc<SstableIteratorReadOptions>, ) -> Self
Auto Trait Implementations§
impl Freeze for SstableIterator
impl !RefUnwindSafe for SstableIterator
impl Send for SstableIterator
impl Sync for SstableIterator
impl Unpin for SstableIterator
impl !UnwindSafe for SstableIterator
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moresource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = Infallible
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
Creates a shared type from an unshared type.
source§impl<M> MetricVecRelabelExt for M
impl<M> MetricVecRelabelExt for M
source§fn relabel(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level
.source§fn relabel_n(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
relabel_num: usize,
) -> RelabeledMetricVec<M>
fn relabel_n( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, relabel_num: usize, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level_relabel_n
.source§fn relabel_debug_1(
self,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel_debug_1( self, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level_relabel_n
with metric_level
set to
MetricLevel::Debug
and relabel_num
set to 1.