pub struct CalvinTuning {
pub channel_capacity: usize,
pub txn_deadline_multiplier: u32,
pub dependent_read_passive_timeout_ms: u64,
pub verdict_stall_warn_ms: u64,
pub max_inflight_backlog: usize,
pub catch_up_window: u64,
pub max_redo_entry_bytes: usize,
pub max_open_redo_bytes: u64,
pub restage_attempts: u32,
pub restage_backoff_ms: u64,
}Expand description
Tuning knobs for the Calvin scheduler that runs per hosted vShard.
Fields§
§channel_capacity: usizeCapacity of each scheduler’s bounded input, completion, and verdict channels.
txn_deadline_multiplier: u32Transaction deadline, in sequencer epochs.
dependent_read_passive_timeout_ms: u64Wait in milliseconds of an active vShard’s dependent-read barrier for the read results of its passive vShards. Past it, the vShard’s data-group leader proposes the barrier’s timeout entry, and every replica aborts a barrier that entry finds incomplete.
verdict_stall_warn_ms: u64Interval in milliseconds between stall warnings for a transaction parked on its global verdict. The transaction keeps waiting and never aborts. The idle sweep runs at a quarter of this interval.
max_inflight_backlog: usizeIn-flight backlog at which a scheduler stops taking new sequenced input. The backlog counts pending, blocked, and dependent-barrier transactions. It also bounds the dependent-read barrier entries a vShard holds in memory for transactions its scheduler has not taken yet. Entries past it wait in the system catalog alone.
catch_up_window: u64Most sequencer log entries one catch-up drain reads and replays.
max_redo_entry_bytes: usizeLargest encoded redo entry a proposer puts in a data-group log. A committed redo past it travels as chunk entries and a final entry.
max_open_redo_bytes: u64Most bytes of chunked redo streams a node holds open. A group leader refuses a new stream that would pass it on the leader’s node. A node holds at most this much per data group it hosts.
restage_attempts: u32Most times a leader stages a committed transaction again after its own stage failed. An earlier leader’s COMMIT vote decided the transaction, so it cannot drop. The scheduler halts once the stages run out.
restage_backoff_ms: u64Wait in milliseconds before the first restage of a committed transaction. Each later restage waits twice as long as the one before, at most 60 seconds.
Trait Implementations§
Source§impl Clone for CalvinTuning
impl Clone for CalvinTuning
Source§impl Debug for CalvinTuning
impl Debug for CalvinTuning
Source§impl Default for CalvinTuning
impl Default for CalvinTuning
Source§impl<'de> Deserialize<'de> for CalvinTuning
impl<'de> Deserialize<'de> for CalvinTuning
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>,
impl Eq for CalvinTuning
Source§impl PartialEq for CalvinTuning
impl PartialEq for CalvinTuning
Source§impl Serialize for CalvinTuning
impl Serialize for CalvinTuning
impl StructuralPartialEq for CalvinTuning
Auto Trait Implementations§
impl Freeze for CalvinTuning
impl RefUnwindSafe for CalvinTuning
impl Send for CalvinTuning
impl Sync for CalvinTuning
impl Unpin for CalvinTuning
impl UnsafeUnpin for CalvinTuning
impl UnwindSafe for CalvinTuning
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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,
impl<T> Scalar for T
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.