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§
source§impl FairSpillPool
impl FairSpillPool
sourcepub fn new(pool_size: usize) -> FairSpillPool
pub fn new(pool_size: usize) -> FairSpillPool
Allocate up to limit
bytes
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