pub struct CompactionPlanner { /* private fields */ }Expand description
Compaction planner
Implementations§
Source§impl CompactionPlanner
impl CompactionPlanner
Sourcepub fn new(config: CompactionConfig) -> Self
pub fn new(config: CompactionConfig) -> Self
Create a new compaction planner
Sourcepub fn needs_l0_compaction(&self, l0_sstable_count: usize) -> bool
pub fn needs_l0_compaction(&self, l0_sstable_count: usize) -> bool
Check if L0 needs compaction
Sourcepub fn needs_level_compaction(&self, level: usize, level_size: u64) -> bool
pub fn needs_level_compaction(&self, level: usize, level_size: u64) -> bool
Check if a level needs compaction
Sourcepub fn level_target_size(&self, level: usize) -> u64
pub fn level_target_size(&self, level: usize) -> u64
Calculate target size for a level
Sourcepub fn plan_compaction(
&self,
source_level: usize,
source_sstables: Vec<SSTableMetadata>,
target_sstables: Vec<SSTableMetadata>,
) -> Option<CompactionTask>
pub fn plan_compaction( &self, source_level: usize, source_sstables: Vec<SSTableMetadata>, target_sstables: Vec<SSTableMetadata>, ) -> Option<CompactionTask>
Plan a compaction task (level-based strategy)
Sourcepub fn plan_size_tiered_compaction(
&self,
sstables: Vec<SSTableMetadata>,
) -> Option<CompactionTask>
pub fn plan_size_tiered_compaction( &self, sstables: Vec<SSTableMetadata>, ) -> Option<CompactionTask>
Plan a size-tiered compaction task
Groups SSTables by similar size (within size_ratio of each other).
When a tier has at least min_tier_size SSTables, they are merged.
Sourcepub fn group_by_size_tier(
&self,
sstables: Vec<SSTableMetadata>,
) -> Vec<SizeTier>
pub fn group_by_size_tier( &self, sstables: Vec<SSTableMetadata>, ) -> Vec<SizeTier>
Group SSTables into size tiers
SSTables are grouped such that the largest file in a tier is at most
size_ratio times the smallest file in the same tier.
Sourcepub fn find_overlapping_sstables(
&self,
source_sstables: &[SSTableMetadata],
target_sstables: &[SSTableMetadata],
) -> Vec<SSTableMetadata>
pub fn find_overlapping_sstables( &self, source_sstables: &[SSTableMetadata], target_sstables: &[SSTableMetadata], ) -> Vec<SSTableMetadata>
Find overlapping SSTables in target level
Auto Trait Implementations§
impl Freeze for CompactionPlanner
impl RefUnwindSafe for CompactionPlanner
impl Send for CompactionPlanner
impl Sync for CompactionPlanner
impl Unpin for CompactionPlanner
impl UnsafeUnpin for CompactionPlanner
impl UnwindSafe for CompactionPlanner
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> 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> 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.