Trait datafusion::execution::memory_pool::MemoryPool
source · pub trait MemoryPool: Send + Sync + Debug {
// Required methods
fn grow(&self, reservation: &MemoryReservation, additional: usize);
fn shrink(&self, reservation: &MemoryReservation, shrink: usize);
fn try_grow(
&self,
reservation: &MemoryReservation,
additional: usize
) -> Result<(), DataFusionError>;
fn reserved(&self) -> usize;
// Provided methods
fn register(&self, _consumer: &MemoryConsumer) { ... }
fn unregister(&self, _consumer: &MemoryConsumer) { ... }
}
Expand description
The pool of memory on which MemoryReservation
record their memory reservations
Required Methods§
sourcefn grow(&self, reservation: &MemoryReservation, additional: usize)
fn grow(&self, reservation: &MemoryReservation, additional: usize)
Infallibly grow the provided reservation
by additional
bytes
This must always succeed
sourcefn shrink(&self, reservation: &MemoryReservation, shrink: usize)
fn shrink(&self, reservation: &MemoryReservation, shrink: usize)
Infallibly shrink the provided reservation
by shrink
bytes
sourcefn try_grow(
&self,
reservation: &MemoryReservation,
additional: usize
) -> Result<(), DataFusionError>
fn try_grow( &self, reservation: &MemoryReservation, additional: usize ) -> Result<(), DataFusionError>
Attempt to grow the provided reservation
by additional
bytes
On error the allocation
will not be increased in size
Provided Methods§
sourcefn register(&self, _consumer: &MemoryConsumer)
fn register(&self, _consumer: &MemoryConsumer)
Registers a new MemoryConsumer
Note: Subsequent calls to Self::grow
must be made to reserve memory
sourcefn unregister(&self, _consumer: &MemoryConsumer)
fn unregister(&self, _consumer: &MemoryConsumer)
Records the destruction of a MemoryReservation
with MemoryConsumer
Note: Prior calls to Self::shrink
must be made to free any reserved memory