pub struct RouteCacheCoalescing {
pub wait_ms: u64,
}Expand description
Request-coalescing knobs (DW-038). Presence of the block on a
route’s cache is the opt-in (the same presence-means-enabled rule
as every other block); this struct carries the one bound the
behavior needs.
Scope (deliberate, spec-faithful): coalescing applies ONLY to the
cache-miss path of cache-enabled routes — “concurrent identical
CACHEABLE GETs”. Requests on routes without a cache block (or
shapes the cache bypasses: non-GET, credentialed, body-bearing,
upgrade) are never coalesced; they were never cacheable, so there is
no shared outcome to hand a follower.
Fields§
§wait_ms: u64How long a follower waits for the leader’s outcome before doing its own upstream call (fail open — a client is never errored because coalescing gave up). Absent: 5 s. Validation bounds the value to (0, 60 s].
Trait Implementations§
Source§impl Clone for RouteCacheCoalescing
impl Clone for RouteCacheCoalescing
Source§fn clone(&self) -> RouteCacheCoalescing
fn clone(&self) -> RouteCacheCoalescing
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RouteCacheCoalescing
impl Debug for RouteCacheCoalescing
Source§impl<'de> Deserialize<'de> for RouteCacheCoalescing
impl<'de> Deserialize<'de> for RouteCacheCoalescing
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 JsonSchema for RouteCacheCoalescing
impl JsonSchema for RouteCacheCoalescing
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for RouteCacheCoalescing
impl PartialEq for RouteCacheCoalescing
Source§impl Serialize for RouteCacheCoalescing
impl Serialize for RouteCacheCoalescing
impl StructuralPartialEq for RouteCacheCoalescing
Auto Trait Implementations§
impl Freeze for RouteCacheCoalescing
impl RefUnwindSafe for RouteCacheCoalescing
impl Send for RouteCacheCoalescing
impl Sync for RouteCacheCoalescing
impl Unpin for RouteCacheCoalescing
impl UnwindSafe for RouteCacheCoalescing
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§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