pub struct InboundOrdering {
pub enabled: bool,
pub snapshot_complete: bool,
pub skipped_session_count: usize,
pub known_session_count: usize,
pub returned_buffered_session_count: usize,
pub returned_buffered_message_count: usize,
pub returned_max_buffered_count: usize,
pub sessions: Vec<OrderingSessionSnapshot>,
}Expand description
Mesh-admin presentation of inbound ordering state. Computed from
the upstream hyperactor::ordering::OrderingSnapshot; rollup fields
are derived at conversion time so consumers don’t have to iterate
sessions for the common “is anything stalled?” question.
Partial-snapshot semantics (IO-2): when snapshot_complete == false,
sessions excludes any session held by a concurrent send. Rollups
marked “returned” below are computed over sessions only and are
LOWER BOUNDS in that case – agents must refetch before concluding
“no stalls”. known_session_count is the exception: it counts both
returned and skipped sessions.
Fields§
§enabled: boolWhether reorder buffering is enabled for this sender. When
false, messages flow via direct_send and sessions is
empty even under load.
snapshot_complete: boolIO-4: true iff skipped_session_count == 0. Mirrors
OrderingSnapshot::is_complete().
skipped_session_count: usizeSessions whose mutex was held by a concurrent send when we
tried to snapshot. NOT in sessions.
known_session_count: usizeIO-5: total live sessions known to OrderedSender at snapshot
time: sessions.len() + skipped_session_count. Includes idle /
drained sessions (state retained for duplicate-detection).
returned_buffered_session_count: usizeIO-6: sessions with buffered_count > 0 AMONG RETURNED
sessions. Lower bound if !snapshot_complete.
returned_buffered_message_count: usizeIO-6: sum of buffered_count OVER RETURNED sessions.
Reorder-buffer scope only (see IO-3 in hyperactor::introspect).
Lower bound if !snapshot_complete.
returned_max_buffered_count: usizeIO-6: max of buffered_count OVER RETURNED sessions. Lower
bound if !snapshot_complete.
sessions: Vec<OrderingSessionSnapshot>Per-session entries, sorted by session_id (preserved from
upstream sort). API returns all returned sessions; TUI may
truncate.
Trait Implementations§
Source§impl Clone for InboundOrdering
impl Clone for InboundOrdering
Source§fn clone(&self) -> InboundOrdering
fn clone(&self) -> InboundOrdering
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for InboundOrdering
impl Debug for InboundOrdering
Source§impl<'de> Deserialize<'de> for InboundOrdering
impl<'de> Deserialize<'de> for InboundOrdering
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>,
Source§impl From<InboundOrdering> for InboundOrderingDto
impl From<InboundOrdering> for InboundOrderingDto
Source§fn from(o: InboundOrdering) -> Self
fn from(o: InboundOrdering) -> Self
Source§impl From<OrderingSnapshot> for InboundOrdering
impl From<OrderingSnapshot> for InboundOrdering
Source§fn from(s: OrderingSnapshot) -> Self
fn from(s: OrderingSnapshot) -> Self
Source§impl Named for InboundOrdering
impl Named for InboundOrdering
Source§fn typename() -> &'static str
fn typename() -> &'static str
Source§fn typehash() -> u64
fn typehash() -> u64
Source§fn typeid() -> TypeId
fn typeid() -> TypeId
Source§impl PartialEq for InboundOrdering
impl PartialEq for InboundOrdering
Source§impl Serialize for InboundOrdering
impl Serialize for InboundOrdering
Source§impl TryFrom<InboundOrderingDto> for InboundOrdering
impl TryFrom<InboundOrderingDto> for InboundOrdering
impl StructuralPartialEq for InboundOrdering
Auto Trait Implementations§
impl Freeze for InboundOrdering
impl RefUnwindSafe for InboundOrdering
impl Send for InboundOrdering
impl Sync for InboundOrdering
impl Unpin for InboundOrdering
impl UnsafeUnpin for InboundOrdering
impl UnwindSafe for InboundOrdering
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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> 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>
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>
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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].