Struct datafusion::execution::memory_pool::FairSpillPool
source · pub struct FairSpillPool { /* private fields */ }
Expand description
A MemoryPool
that prevents spillable reservations from using more than
an even fraction of the available memory sans any unspillable reservations
(i.e. (pool_size - unspillable_memory) / num_spillable_reservations
)
┌───────────────────────z──────────────────────z───────────────┐ │ z z │ │ z z │ │ Spillable z Unspillable z Free │ │ Memory z Memory z Memory │ │ z z │ │ z z │ └───────────────────────z──────────────────────z───────────────┘
Unspillable memory is allocated in a first-come, first-serve fashion
Implementations§
Trait Implementations§
source§impl Debug for FairSpillPool
impl Debug for FairSpillPool
source§impl MemoryPool for FairSpillPool
impl MemoryPool for FairSpillPool
source§fn register(&self, consumer: &MemoryConsumer)
fn register(&self, consumer: &MemoryConsumer)
MemoryConsumer
Read moresource§fn unregister(&self, consumer: &MemoryConsumer)
fn unregister(&self, consumer: &MemoryConsumer)
source§fn grow(&self, reservation: &MemoryReservation, additional: usize)
fn grow(&self, reservation: &MemoryReservation, additional: usize)
source§fn shrink(&self, reservation: &MemoryReservation, shrink: usize)
fn shrink(&self, reservation: &MemoryReservation, shrink: usize)
reservation
by shrink
bytes