Skip to content

MemoryConsumer

MemoryConsumer is an abstraction of memory consumers (of TaskMemoryManager) that support spilling.

MemoryConsumers correspond to individual operators and data structures within a task. TaskMemoryManager receives memory allocation requests from MemoryConsumers and issues callbacks to consumers in order to trigger spilling when running low on memory.

A MemoryConsumer basically tracks how much memory is allocated.

Contract

Spilling

void spill() // (1)
long spill(
  long size,
  MemoryConsumer trigger)
  1. Uses MAX_VALUE for the size and this MemoryConsumer

Used when:

Implementations

Creating Instance

MemoryConsumer takes the following to be created:

Abstract Class

MemoryConsumer is an abstract class and cannot be created directly. It is created indirectly for the concrete MemoryConsumers.