Skip to main content

ArrowMemoryPool

Struct ArrowMemoryPool 

Source
pub struct ArrowMemoryPool { /* private fields */ }
Available on crate feature arrow_buffer_pool only.
Expand description

An adapter that implements Arrow’s arrow_buffer::MemoryPool trait by wrapping a DataFusion MemoryPool.

This allows DataFusion’s memory management system to be used with Arrow’s memory allocation APIs. Each reservation made through this pool will be tracked using the provided MemoryConsumer, enabling DataFusion to monitor and limit memory usage across Arrow operations.

This is useful when you want Arrow operations (such as array builders or compute kernels) to participate in DataFusion’s memory management and respect the same memory limits as DataFusion operators.

Implementations§

Source§

impl ArrowMemoryPool

Source

pub fn new(inner: Arc<dyn MemoryPool>, consumer: MemoryConsumer) -> Self

Creates a new ArrowMemoryPool that wraps the given DataFusion MemoryPool and tracks allocations under the specified MemoryConsumer.

Trait Implementations§

Source§

impl Debug for ArrowMemoryPool

Source§

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

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

impl MemoryPool for ArrowMemoryPool

Source§

fn reserve(&self, size: usize) -> Box<dyn MemoryReservation>

Reserves memory from the pool. Infallible. Read more
Source§

fn available(&self) -> isize

Returns the current available memory in the pool. Read more
Source§

fn used(&self) -> usize

Returns the current used memory from the pool.
Source§

fn capacity(&self) -> usize

Returns the maximum memory that can be reserved from the pool.

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> 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