pub struct ReferenceTenancy { /* private fields */ }Expand description
A reference tenancy: every partition resolves to a placement of the configured
PlacementMode. The default SharedIndex mode isolates by an injected
_tenant field; the dedicated modes isolate by index/cluster with no body
rewrite.
Implementations§
Source§impl ReferenceTenancy
impl ReferenceTenancy
Sourcepub fn new(
cluster: ClusterId,
index: IndexName,
endpoint: impl Into<String>,
) -> Self
pub fn new( cluster: ClusterId, index: IndexName, endpoint: impl Into<String>, ) -> Self
Builds the reference tenancy over one cluster and shared index, served at
endpoint (the cluster’s base URL, reported as part of the placement
result so the sink can pool it). Defaults to PlacementMode::SharedIndex.
Sourcepub fn with_placement_mode(self, mode: PlacementMode) -> Self
pub fn with_placement_mode(self, mode: PlacementMode) -> Self
Sets the placement mode (builder). SharedIndex rewrites the body;
DedicatedIndex/DedicatedCluster route without touching it.
Trait Implementations§
Source§impl Debug for ReferenceTenancy
impl Debug for ReferenceTenancy
Source§impl TenancySpi for ReferenceTenancy
impl TenancySpi for ReferenceTenancy
Source§fn resolve_partition(
&self,
ctx: &RequestCtx<'_>,
body: BodyDoc<'_>,
) -> Result<PartitionId, SpiError>
fn resolve_partition( &self, ctx: &RequestCtx<'_>, body: BodyDoc<'_>, ) -> Result<PartitionId, SpiError>
Resolves the partition id for a request. Read more
Source§fn doc_id_rule(&self) -> Option<DocIdRule>
fn doc_id_rule(&self) -> Option<DocIdRule>
Optional rule to construct the document
_id (and _routing).Source§fn injected_fields(&self) -> Vec<InjectedField>
fn injected_fields(&self) -> Vec<InjectedField>
Fields injected on ingest and stripped on read. The field names are
chosen here (the SPI decides them).
Source§fn cluster_endpoint(&self, cluster: &ClusterId) -> Option<String>
fn cluster_endpoint(&self, cluster: &ClusterId) -> Option<String>
The base URL of a cluster, by id. The data plane carries each cluster’s
endpoint on the placement result, but the cursor-affinity and admin
pass-through paths route to a cluster by id with no placement to consult,
so they resolve the endpoint through this lookup. Return
None for an
unknown cluster; the request then fails closed rather than route blind. Read moreSource§async fn placement_for(
&self,
partition: &PartitionId,
) -> Result<PlacementAt, SpiError>
async fn placement_for( &self, partition: &PartitionId, ) -> Result<PlacementAt, SpiError>
Resolves a partition to its current placement and the epoch it was read
at. NOT a pure function, migration mutates the placement state. Read more
Source§fn sensitive_fields(&self) -> SensitivitySpec
fn sensitive_fields(&self) -> SensitivitySpec
Declares which field values observability may capture, driving
value-suppression (NFR-S2). Deny-by-default: the standard implementation
returns
SensitivitySpec::all_sensitive (everything redacted) and
allow-lists known-safe fields with SensitivitySpec::allowing. The
default here is all_sensitive, so a tenancy that does not override it
leaks nothing.Source§fn admit_write(
&self,
_partition: &PartitionId,
_epoch: Epoch,
) -> impl Future<Output = bool> + Send
fn admit_write( &self, _partition: &PartitionId, _epoch: Epoch, ) -> impl Future<Output = bool> + Send
The migration write gate (
docs/06 §2): may a write that resolved at
epoch for partition still commit? Re-checked at dispatch, after the
decision was stamped, so a placement that advanced (or entered cutover) in
the meantime is caught. false means reject as a retryable stale-epoch
error; the client re-resolves against the new placement. Read moreAuto Trait Implementations§
impl Freeze for ReferenceTenancy
impl RefUnwindSafe for ReferenceTenancy
impl Send for ReferenceTenancy
impl Sync for ReferenceTenancy
impl Unpin for ReferenceTenancy
impl UnsafeUnpin for ReferenceTenancy
impl UnwindSafe for ReferenceTenancy
Blanket Implementations§
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request