pub struct LimitedPriorityLevelConfiguration {
pub assured_concurrency_shares: Option<i32>,
pub limit_response: Option<LimitResponse>,
pub lendable_percent: Option<i32>,
pub borrowing_limit_percent: Option<i32>,
}Expand description
LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues:
- How are requests for this priority level limited?
- What should be done with requests that exceed the limit?
Fields§
assuredConcurrencyShares (ACS) configures the execution
limit, which is a limit on the number of requests of this
priority level that may be executing at a given time. ACS must
be a positive number. The server’s concurrency limit (SCL) is
divided among the concurrency-controlled priority levels in
proportion to their assured concurrency shares. This produces
the assured concurrency value (ACV) — the number of requests
that may be executing at a time — for each such priority
level:
ACV(l) = ceil( SCL * ACS(l) / ( sum\[priority levels k\] ACS(k) ) )bigger numbers of ACS mean more reserved concurrent requests (at the expense of every other PL). This field has a default value of 30. +optional
limit_response: Option<LimitResponse>limitResponse indicates what to do with requests that can not be executed right now
lendable_percent: Option<i32>lendablePercent prescribes the fraction of the level’s NominalCL that
can be borrowed by other priority levels. The value of this
field must be between 0 and 100, inclusive, and it defaults to 0.
The number of seats that other levels can borrow from this level, known
as this level’s LendableConcurrencyLimit (LendableCL), is defined as follows.
LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )
+optional
borrowing_limit_percent: Option<i32>borrowingLimitPercent, if present, configures a limit on how many
seats this priority level can borrow from other priority levels.
The limit is known as this level’s BorrowingConcurrencyLimit
(BorrowingCL) and is a limit on the total number of seats that this
level may borrow at any one time.
This field holds the ratio of that limit to the level’s nominal
concurrency limit. When this field is non-nil, it must hold a
non-negative integer and the limit is calculated as follows.
BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )
The value of this field can be more than 100, implying that this
priority level can borrow a number of seats that is greater than
its own nominal concurrency limit (NominalCL).
When this field is left nil, the limit is effectively infinite.
+optional
Implementations§
Source§impl LimitedPriorityLevelConfiguration
impl LimitedPriorityLevelConfiguration
Returns the value of assured_concurrency_shares, or the default value if assured_concurrency_shares is unset.
Sourcepub fn lendable_percent(&self) -> i32
pub fn lendable_percent(&self) -> i32
Returns the value of lendable_percent, or the default value if lendable_percent is unset.
Sourcepub fn borrowing_limit_percent(&self) -> i32
pub fn borrowing_limit_percent(&self) -> i32
Returns the value of borrowing_limit_percent, or the default value if borrowing_limit_percent is unset.
Trait Implementations§
Source§impl Clone for LimitedPriorityLevelConfiguration
impl Clone for LimitedPriorityLevelConfiguration
Source§fn clone(&self) -> LimitedPriorityLevelConfiguration
fn clone(&self) -> LimitedPriorityLevelConfiguration
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Message for LimitedPriorityLevelConfiguration
impl Message for LimitedPriorityLevelConfiguration
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl PartialEq for LimitedPriorityLevelConfiguration
impl PartialEq for LimitedPriorityLevelConfiguration
Source§fn eq(&self, other: &LimitedPriorityLevelConfiguration) -> bool
fn eq(&self, other: &LimitedPriorityLevelConfiguration) -> bool
self and other values to be equal, and is used by ==.