pub struct TraceManager {
    pub(crate) traces: BTreeMap<GlobalId, TraceBundle>,
    worker_id: usize,
    maintenance_metrics: BTreeMap<GlobalId, MaintenanceMetrics>,
    doing_maintenance: DeleteOnDropGauge<'static, AtomicU64, Vec<String>>,
    metrics: TraceMetrics,
}
Expand description

A TraceManager stores maps from global identifiers to the primary arranged representation of that collection.

Fields§

§traces: BTreeMap<GlobalId, TraceBundle>§worker_id: usize§maintenance_metrics: BTreeMap<GlobalId, MaintenanceMetrics>§doing_maintenance: DeleteOnDropGauge<'static, AtomicU64, Vec<String>>

1 if this worker is currently doing maintenance.

If maintenance turns out to take a very long time, this will allow us to gain a sense that materialize is stuck on maintenance before the maintenance completes

§metrics: TraceMetrics

Implementations§

source§

impl TraceManager

source

pub fn new(metrics: TraceMetrics, worker_id: usize) -> Self

TODO(undocumented)

source

pub fn maintenance(&mut self)

performs maintenance work on the managed traces.

In particular, this method enables the physical merging of batches, so that at most a logarithmic number of batches need to be maintained. Any new batches introduced after this method is called will not be physically merged until the method is called again. This is mostly due to limitations of differential dataflow, which requires users to perform this explicitly; if that changes we may be able to remove this code.

source

pub fn allow_compaction( &mut self, id: GlobalId, frontier: AntichainRef<'_, Timestamp> )

Enables compaction of traces associated with the identifier.

Compaction may not occur immediately, but once this method is called the associated traces may not accumulate to the correct quantities for times not in advance of frontier. Users should take care to only rely on accumulations at times in advance of frontier.

source

pub fn get(&self, id: &GlobalId) -> Option<&TraceBundle>

Returns a reference to the trace for id, should it exist.

source

pub fn get_mut(&mut self, id: &GlobalId) -> Option<&mut TraceBundle>

Returns a mutable reference to the trace for id, should it exist.

source

pub fn set(&mut self, id: GlobalId, trace: TraceBundle)

Binds the arrangement for id to trace.

source

pub fn del_trace(&mut self, id: &GlobalId) -> bool

Removes the trace for id.

source

pub fn del_all_traces(&mut self)

Removes all managed traces.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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> FutureExt for T

source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere 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> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<T> Pointable for T

source§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

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<P, R> ProtoType<R> for Pwhere R: RustType<P>,

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.
source§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more