pub struct TimeseriesToning {
pub memtable_budget_bytes: usize,
pub memtable_hard_limit_bytes: usize,
pub max_tag_cardinality: u32,
pub total_budget_bytes: usize,
pub block_size: usize,
pub cagg_fold_partitions_per_tick: usize,
pub merge_groups_per_tick: usize,
pub merge_max_rows: u64,
pub merge_quiet_ms: u64,
}Expand description
Timeseries engine tuning (memtable budgets, block sizes).
Fields§
§memtable_budget_bytes: usizeSoft memtable budget: reaching it schedules a flush at the next record boundary. Rows already in the memtable are never refused because of it.
memtable_hard_limit_bytes: usizeHard memtable ceiling. Reaching it forces a flush BEFORE the next WAL record is ingested, never partway through one: by the time the Data Plane sees a record its WAL append has already committed, so the memtable must take the record whole or the write is silently lost. Consequently a single record can carry the memtable up to its own decoded size past this ceiling; see the admission gate in the timeseries ingest handler for the bound that costs.
max_tag_cardinality: u32Maximum distinct values per symbol (tag / string) column in one memtable generation. Flushing resets the dictionaries, so this bounds dictionary size between flushes rather than over the collection’s life.
total_budget_bytes: usize§block_size: usize§cagg_fold_partitions_per_tick: usizeSealed partitions one maintenance tick reads to fold into continuous aggregates. Bounds the time a tick holds the core while an aggregate backfills after a CREATE or a restart.
merge_groups_per_tick: usizePartition groups one maintenance tick merges. Late rows flush into a new partition beside the one their interval already has; a merge combines the partitions of one interval into one.
merge_max_rows: u64Most rows one merge reads and writes. Bounds the memory a merge holds. A larger interval merges in several groups.
merge_quiet_ms: u64How long after an interval ends its partitions merge. Late rows for an interval still arriving within this window flush first, so the interval merges once.
Trait Implementations§
Source§impl Clone for TimeseriesToning
impl Clone for TimeseriesToning
Source§impl Debug for TimeseriesToning
impl Debug for TimeseriesToning
Source§impl Default for TimeseriesToning
impl Default for TimeseriesToning
Source§impl<'de> Deserialize<'de> for TimeseriesToning
impl<'de> Deserialize<'de> for TimeseriesToning
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for TimeseriesToning
impl RefUnwindSafe for TimeseriesToning
impl Send for TimeseriesToning
impl Sync for TimeseriesToning
impl Unpin for TimeseriesToning
impl UnsafeUnpin for TimeseriesToning
impl UnwindSafe for TimeseriesToning
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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>
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
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.