pub enum GooseCoordinatedOmissionMitigation {
Average,
Maximum,
Minimum,
Disabled,
}
Expand description
THIS IS AN EXPERIMENTAL FEATURE, DISABLED BY DEFAULT. Optionally mitigate the loss of data (coordinated omission) due to stalls on the upstream server.
Stalling can happen for many reasons, for example: garbage collection, a cache stampede,
even unrelated load on the same server. Without any mitigation, Goose loses
statistically relevant information as GooseUser
threads are unable to make additional requests while they are blocked by an upstream stall.
Goose mitigates this by backfilling the requests that would have been made during that time.
Backfilled requests show up in the --request-file
if enabled, though they were not actually
sent to the server.
Goose can be configured to backfill requests based on the expected
user_cadence
. The expected
cadence can be automatically calculated with any of the following configuration options.
Variants
Average
Backfill based on the average
user_cadence
for this
GooseUser
.
Maximum
Backfill based on the maximum
user_cadence
for this
GooseUser
.
Minimum
Backfill based on the minimum
user_cadence
for this
GooseUser
.
Disabled
Completely disable coordinated omission mitigation (default).
Trait Implementations
sourceimpl Clone for GooseCoordinatedOmissionMitigation
impl Clone for GooseCoordinatedOmissionMitigation
sourcefn clone(&self) -> GooseCoordinatedOmissionMitigation
fn clone(&self) -> GooseCoordinatedOmissionMitigation
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<'de> Deserialize<'de> for GooseCoordinatedOmissionMitigation
impl<'de> Deserialize<'de> for GooseCoordinatedOmissionMitigation
sourcefn 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>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl FromStr for GooseCoordinatedOmissionMitigation
impl FromStr for GooseCoordinatedOmissionMitigation
Allow --co-mitigation
from the command line using text variations on supported
GooseCoordinatedOmissionMitigation
s by implementing FromStr
.
sourceimpl GooseDefaultType<GooseCoordinatedOmissionMitigation> for GooseAttack
impl GooseDefaultType<GooseCoordinatedOmissionMitigation> for GooseAttack
sourcefn set_default(
self,
key: GooseDefault,
value: GooseCoordinatedOmissionMitigation
) -> Result<Box<Self>, GooseError>
fn set_default(
self,
key: GooseDefault,
value: GooseCoordinatedOmissionMitigation
) -> Result<Box<Self>, GooseError>
Sets GooseDefault
to a GooseCoordinatedOmissionMitigation
value.
impl Eq for GooseCoordinatedOmissionMitigation
impl StructuralEq for GooseCoordinatedOmissionMitigation
impl StructuralPartialEq for GooseCoordinatedOmissionMitigation
Auto Trait Implementations
impl RefUnwindSafe for GooseCoordinatedOmissionMitigation
impl Send for GooseCoordinatedOmissionMitigation
impl Sync for GooseCoordinatedOmissionMitigation
impl Unpin for GooseCoordinatedOmissionMitigation
impl UnwindSafe for GooseCoordinatedOmissionMitigation
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
sourcefn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
sourcefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
sourcefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
sourcefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
sourceimpl<T> DowncastSync for T where
T: Any + Send + Sync,
impl<T> DowncastSync for T where
T: Any + Send + Sync,
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more