Struct dataflow_types::plan::reduce::BucketedPlan [−][src]
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() % bucketes[layer]
.
Trait Implementations
fn 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
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
Mutably borrows from an owned value. Read more
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more