pub struct LimitedPriorityLevelConfiguration {
pub nominal_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§
nominalConcurrencyShares (NCS) contributes to the computation of the
NominalConcurrencyLimit (NominalCL) of this level.
This is the number of execution seats available at this priority level.
This is used both for requests dispatched from this priority level
as well as requests dispatched from other priority levels
borrowing seats from this level.
The server’s concurrency limit (ServerCL) is divided among the
Limited priority levels in proportion to their NCS values:
NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k)
Bigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. 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 nominal_concurrency_shares, or the default value if nominal_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 ==.