Struct mz_dataflow_types::plan::reduce::BucketedPlan
source · [−]pub struct BucketedPlan {
pub aggr_funcs: Vec<AggregateFunc>,
pub skips: Vec<usize>,
pub buckets: Vec<u64>,
}
Expand description
Plan for computing a set of hierarchical aggregations with non-monotonic inputs.
To perform hierarchical aggregations with stable runtimes under updates we’ll subdivide the group key into buckets, compute the reduction in each of those subdivided buckets and then combine the results into a coarser bucket (one that represents a larger fraction of the original input) and redo the reduction in another layer. Effectively, we’ll construct a min / max heap out of a series of reduce operators (each one is a separate layer).
Fields
aggr_funcs: Vec<AggregateFunc>
All of the aggregations we were asked to compute.
skips: Vec<usize>
Set of “skips” or calls to nth()
an iterator needs to do over
the input to extract the relevant datums.
buckets: Vec<u64>
The number of buckets in each layer of the reduction tree. Should
be decreasing, and ideally, a power of two so that we can easily
distribute values to buckets with value.hashed() % buckets[layer]
.
Trait Implementations
sourceimpl Clone for BucketedPlan
impl Clone for BucketedPlan
sourcefn clone(&self) -> BucketedPlan
fn clone(&self) -> BucketedPlan
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for BucketedPlan
impl Debug for BucketedPlan
sourceimpl<'de> Deserialize<'de> for BucketedPlan
impl<'de> Deserialize<'de> for BucketedPlan
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl PartialEq<BucketedPlan> for BucketedPlan
impl PartialEq<BucketedPlan> for BucketedPlan
sourcefn eq(&self, other: &BucketedPlan) -> bool
fn eq(&self, other: &BucketedPlan) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &BucketedPlan) -> bool
fn ne(&self, other: &BucketedPlan) -> bool
This method tests for !=
.
sourceimpl RustType<ProtoBucketedPlan> for BucketedPlan
impl RustType<ProtoBucketedPlan> for BucketedPlan
sourcefn into_proto(&self) -> ProtoBucketedPlan
fn into_proto(&self) -> ProtoBucketedPlan
Convert a Self
into a Proto
value.
sourcefn from_proto(proto: ProtoBucketedPlan) -> Result<Self, TryFromProtoError>
fn from_proto(proto: ProtoBucketedPlan) -> Result<Self, TryFromProtoError>
Consume and convert a Proto
back into a Self
value. Read more
sourceimpl Serialize for BucketedPlan
impl Serialize for BucketedPlan
impl Eq for BucketedPlan
impl StructuralEq for BucketedPlan
impl StructuralPartialEq for BucketedPlan
Auto Trait Implementations
impl RefUnwindSafe for BucketedPlan
impl Send for BucketedPlan
impl Sync for BucketedPlan
impl Unpin for BucketedPlan
impl UnwindSafe for BucketedPlan
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
sourceimpl<T> FutureExt for T
impl<T> FutureExt for T
sourcefn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
sourcefn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
sourcefn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message T
in a tonic::Request
sourceimpl<T> ProgressEventTimestamp for T where
T: Data + Debug + Any,
impl<T> ProgressEventTimestamp for T where
T: Data + Debug + Any,
sourceimpl<P, R> ProtoType<R> for P where
R: RustType<P>,
impl<P, R> ProtoType<R> for P where
R: RustType<P>,
sourcefn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See RustType::from_proto
.
sourcefn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See RustType::into_proto
.
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more