Skip to main content

LeanWorkerPoolConfig

Struct LeanWorkerPoolConfig 

Source
pub struct LeanWorkerPoolConfig { /* private fields */ }
Expand description

Configuration for a local LeanWorkerPool.

Long-running hosts should configure the worker count, total child RSS budget, per-worker RSS ceiling, and each worker’s LeanWorkerRestartPolicy together. The pool admits cold distinct session keys; the worker restart policy bounds retained Lean state inside an admitted child.

Implementations§

Source§

impl LeanWorkerPoolConfig

Source

pub fn new(max_workers: usize) -> Self

Create pool configuration with a fixed local worker limit.

max_workers is clamped to at least one. Production callers should normally add Self::max_total_child_rss_kib and Self::per_worker_rss_ceiling_kib rather than relying on the worker count alone.

Source

pub fn max_workers(&self) -> usize

Return the maximum number of local child workers the pool may own.

Source

pub fn max_total_child_rss_kib(self, limit: u64) -> Self

Reject new distinct workers when known total child RSS reaches limit.

RSS sampling is best effort. On platforms where the pool cannot obtain samples, it records unavailable samples and does not make a false admission claim. Size this with the worker count; for example, a host that admits n children under a per-worker cap should normally set this to n * per_worker_rss_ceiling_kib.

Source

pub fn per_worker_rss_ceiling_kib(self, limit: u64) -> Self

Cycle a worker before assigning work when its sampled RSS reaches limit.

This is the pool-side assignment guard. The worker’s own LeanWorkerRestartPolicy::memory_bounded should use a compatible RSS cap so fresh import-like requests are checked before entering the child.

Source

pub fn idle_cycle_after(self, limit: Duration) -> Self

Cycle an idle worker before assigning more work through an old lease.

Source

pub fn queue_wait_timeout(self, timeout: Duration) -> Self

Wait this long for local pool admission before returning a typed error.

The current pool is synchronous. This timeout documents and bounds the admission point without exposing worker ids or queue internals.

Source

pub fn max_total_child_rss_kib_limit(&self) -> Option<u64>

Return the configured total child RSS budget in KiB.

Source

pub fn per_worker_rss_ceiling_kib_limit(&self) -> Option<u64>

Return the configured per-worker RSS ceiling in KiB.

Source

pub fn idle_cycle_after_limit(&self) -> Option<Duration>

Return the configured idle-cycle duration.

Source

pub fn queue_wait_timeout_limit(&self) -> Duration

Return the configured pool admission wait timeout.

Trait Implementations§

Source§

impl Clone for LeanWorkerPoolConfig

Source§

fn clone(&self) -> LeanWorkerPoolConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for LeanWorkerPoolConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for LeanWorkerPoolConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Eq for LeanWorkerPoolConfig

Source§

impl PartialEq for LeanWorkerPoolConfig

Source§

fn eq(&self, other: &LeanWorkerPoolConfig) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for LeanWorkerPoolConfig

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.