Skip to main content

ExecutionMemoryContext

Struct ExecutionMemoryContext 

Source
pub struct ExecutionMemoryContext { /* private fields */ }
Expand description

Execution context with memory awareness.

This context provides memory allocation for query execution operators and adjusts chunk sizes based on memory pressure.

Implementations§

Source§

impl ExecutionMemoryContext

Source

pub fn new(manager: Arc<BufferManager>) -> Self

Creates a new execution memory context.

Source

pub fn allocate(&mut self, size: usize) -> Option<MemoryGrant>

Requests memory for execution buffers.

Returns None if the allocation cannot be satisfied.

Source

pub fn allocate_tracked(&mut self, size: usize) -> bool

Allocates and stores a grant internally.

The grant will be released when this context is dropped.

Source

pub fn pressure_level(&self) -> PressureLevel

Returns the current pressure level.

Source

pub fn should_reduce_chunk_size(&self) -> bool

Returns whether chunk size should be reduced due to memory pressure.

Source

pub fn adjusted_chunk_size(&self, requested: usize) -> usize

Computes adjusted chunk size based on memory pressure.

Source

pub fn optimal_chunk_size(&self) -> usize

Returns the optimal chunk size for the current memory state.

Source

pub fn total_allocated(&self) -> usize

Returns total bytes allocated through this context.

Source

pub fn manager(&self) -> &Arc<BufferManager>

Returns the buffer manager.

Source

pub fn release_all(&mut self)

Releases all tracked grants.

Trait Implementations§

Source§

impl Drop for ExecutionMemoryContext

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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.