datafusion_execution::memory_pool

Struct TrackConsumersPool

Source
pub struct TrackConsumersPool<I> { /* private fields */ }
Expand description

A MemoryPool that tracks the consumers that have reserved memory within the inner memory pool.

By tracking memory reservations more carefully this pool can provide better error messages on the largest memory users

Tracking is per hashed MemoryConsumer, not per MemoryReservation. The same consumer can have multiple reservations.

Implementations§

Source§

impl<I: MemoryPool> TrackConsumersPool<I>

Source

pub fn new(inner: I, top: NonZeroUsize) -> Self

Creates a new TrackConsumersPool.

The top determines how many Top K MemoryConsumers to include in the reported DataFusionError::ResourcesExhausted.

Source

pub fn report_top(&self, top: usize) -> String

The top consumers in a report string.

Trait Implementations§

Source§

impl<I: Debug> Debug for TrackConsumersPool<I>

Source§

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

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

impl<I: MemoryPool> MemoryPool for TrackConsumersPool<I>

Source§

fn register(&self, consumer: &MemoryConsumer)

Registers a new MemoryConsumer Read more
Source§

fn unregister(&self, consumer: &MemoryConsumer)

Records the destruction of a MemoryReservation with MemoryConsumer Read more
Source§

fn grow(&self, reservation: &MemoryReservation, additional: usize)

Infallibly grow the provided reservation by additional bytes Read more
Source§

fn shrink(&self, reservation: &MemoryReservation, shrink: usize)

Infallibly shrink the provided reservation by shrink bytes
Source§

fn try_grow( &self, reservation: &MemoryReservation, additional: usize, ) -> Result<()>

Attempt to grow the provided reservation by additional bytes Read more
Source§

fn reserved(&self) -> usize

Return the total amount of memory reserved

Auto Trait Implementations§

§

impl<I> !Freeze for TrackConsumersPool<I>

§

impl<I> !RefUnwindSafe for TrackConsumersPool<I>

§

impl<I> Send for TrackConsumersPool<I>
where I: Send,

§

impl<I> Sync for TrackConsumersPool<I>
where I: Sync,

§

impl<I> Unpin for TrackConsumersPool<I>
where I: Unpin,

§

impl<I> UnwindSafe for TrackConsumersPool<I>
where I: UnwindSafe,

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> 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T