pub enum IdKind {
Process,
Block,
ProcessOrStream,
}Expand description
Which table resolves the id to its owning process. Also the cache’s key discriminator: the
same Uuid can legitimately be a process_id in one audience and a stream_id/block_id in
another (all three are client-supplied at ingestion, with no cross-table uniqueness
constraint), so caching by kind keeps those disjoint instead of relying on downstream
emptiness to make a wrong-kind hit harmless.
Variants§
Process
processes.process_id.
Block
blocks.block_id -> blocks.process_id -> processes.
ProcessOrStream
list_partitions’ view_instance_id: either a process_id or a stream_id, resolved in
one round trip. Cached under its own key rather than reusing Process/Block entries or a
separate streams kind, so the UNION ALL result – fail-closed on a collision between the
two arms, see merge_owner_rows – is what actually gets cached. A second consumer,
AudienceGuard::authorize_view_instance’s scan-time check on view_instance(...),
resolves its view_instance_id argument through the same kind, sharing cache entries with
list_partitions’ row filter over the same id.
Trait Implementations§
impl Copy for IdKind
impl Eq for IdKind
impl StructuralPartialEq for IdKind
Auto Trait Implementations§
impl Freeze for IdKind
impl RefUnwindSafe for IdKind
impl Send for IdKind
impl Sync for IdKind
impl Unpin for IdKind
impl UnsafeUnpin for IdKind
impl UnwindSafe for IdKind
Blanket Implementations§
impl<T> Allocation for T
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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> ⓘ
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::Requestimpl<T> Key for T
§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].