An aggregate
is a value object used to define a group of bucket
s that is homogeneously aggregated in bucket-aggregate
.
start-bucket
is the first bucket
of the aggregate (start-bucket ∈ ℕ
).end-bucket
is the last bucket
concerned with that aggregate - end-bucket
is excluded - (end-bucket ∈ ℕ
or nil
).step
is the number of bucket
s gathered in that aggregate
, step ∈ ℕ*
Note that without knowing the other aggregate
in the aggregates
, the targeted bucket-aggregate
are not fully defined.
An `aggregate` is a value object used to define a group of `bucket`s that is homogeneously aggregated in `bucket-aggregate`. * `start-bucket` is the first `bucket` of the aggregate (`start-bucket ∈ ℕ`). * `end-bucket` is the last `bucket` concerned with that aggregate - `end-bucket` is excluded - (`end-bucket ∈ ℕ` or `nil`). * `step` is the number of `bucket`s gathered in that `aggregate`, `step ∈ ℕ*` Note that without knowing the other `aggregate` in the `aggregates`, the targeted `bucket-aggregate` are not fully defined. ![Aggregate entity diagram](archi/time_based/aggregate.png)
Aggregates defines how an aggregator
will be able to turn a bucket
into a bucket-aggregate
.
It is a list of aggregate
automatically sorted with their start-bucket
.
This list is used by a aggregator-item
to create the aggregator
.
See the [[aggregator]] function, for details about the aggregation rules.
Aggregates defines how an `aggregator` will be able to turn a `bucket` into a `bucket-aggregate`. It is a list of `aggregate` automatically sorted with their `start-bucket`. This list is used by a `aggregator-item` to create the `aggregator`. See the [[aggregator]] function, for details about the aggregation rules. ![Aggregates entity diagram](archi/time_based/aggregates.png)
An aggregator
aggregates bucket
into bucket-aggregate
and the way back.
It is composed of aggregator-item
, matching but completing the data aggregate
.
An `aggregator` aggregates `bucket` into `bucket-aggregate` and the way back. It is composed of `aggregator-item`, matching but completing the data `aggregate`. ![Aggregator entity diagram](archi/time_based/aggregator.png)
An aggregator-item
enriches an aggregate
with start-bucket-aggregate
and end-bucket-aggregate
.
Many aggregator-item
are contained in an aggregator
.
Note that no test mechanisms are here to check values of the aggregator-item
, the aggregate
and aggregates
are here to deal with these tests and are responsible to built some valid aggregator-item
.
An `aggregator-item` enriches an `aggregate` with `start-bucket-aggregate` and `end-bucket-aggregate`. Many `aggregator-item` are contained in an `aggregator`. Note that no test mechanisms are here to check values of the `aggregator-item`, the `aggregate` and `aggregates` are here to deal with these tests and are responsible to built some valid `aggregator-item`. ![Aggregator-item entity diagram](archi/time_based/aggregator-item.png)
Strategies to store data in tb-var
.
Note: get-exact
and get-measures
are redundant functionaly but are here to optimize performance.
Strategies to store data in `tb-var`. Note: `get-exact` and `get-measures` are redundant functionaly but are here to optimize performance.
Stores data in a contiguous data structure.
Adding an element outside the initial capacity will add chunk-size element, plus what's missing to store the element.
Stores data in a contiguous data structure. Adding an element outside the initial capacity will add chunk-size element, plus what's missing to store the element.
Stores data in a collection of time / data pair fashion.
Stores data in a collection of time / data pair fashion.
tb-var
that stores additive informations over time buckets.
default-value
is the default value for new or empty buckets, it should be the "0
".default-value
.`tb-var` that stores additive informations over time buckets. * `default-value` is the default value for new or empty buckets, it should be the "`0`". * If a value is set to an empty bucket, the value is replacing the `default-value`. * If a value is already stored in that bucket, it will be added to the existing value. * The values should be numerical to support +. ![Aggregate entity diagram](archi/time_based/tb_var_additive.png)
A tb-var
storing data through an aggregator.
Note that the storage strategy and the way values are aggregated is the repsonsability of the tb-var
.
A `tb-var` storing data through an aggregator. Note that the storage strategy and the way values are aggregated is the repsonsability of the `tb-var`. ![tb-var-aggregated entity diagram](archi/time_based/tb_var_aggregated.png)
A tb-var
that stores a measure m
done at bucket b
that is true for all subsequent buckets after b
unless a new measure is done, at a later bucket
.
b
or the value at the earlier non nil date (as this latest is still available according to this time based).For instance, a stock level is such, since a new stock level will be recorded at that moment. Note that the order of the measures is not significant.
A `tb-var` that stores a measure `m` done at bucket `b` that is true for all subsequent buckets after `b` unless a new measure is done, at a later `bucket`. * Each update of an already existing value is overwritten. * The get-measure is returning the value at bucket `b` or the value at the earlier non nil date (as this latest is still available according to this time based). * The values can be whatever, as no operation is done on it. For instance, a stock level is such, since a new stock level will be recorded at that moment. Note that the order of the measures is not significant. ![tb var latest entity diagram](archi/time_based/tb_var_latest.png)
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close