AggreGate can store long-term time series data in a Round-Robin Database (RRD). The module responsible for collecting, storing and processing time series data is called Statistical Process Control (SPC) module, or just statistics.
Round-robin database aims to handle time-series data, like network bandwidth, temperatures, CPU load, etc. The data is stored in a circular buffer, so the system storage footprint remains constant over time.
The RRD database has two essential benefits for storing long-term statistical data:
- Small and constant database size
- Extremely fast access to the historical data for any time period
Other features of SPC module include:
- Automatic calculation of rates (e.g., flow rate or traffic)
- Working with gauge-type and counter-type values
- Tracking minutely, hourly, daily, weekly, monthly and yearly averages, minimums and maximums
- Configurable degradation of precision for older values
- Concurrent usage with "classic" RDBMS-based non-aggregated historical values storage
Granulation module is designed to split continuous time into sections (granules) for calculating and storing various aggregate values in each granule. It is similar to RRD-based statistics, but instead of fixed-length interval sets it can use any advanced slicing of the time axis:
|Real days in a certain time zone, including daylight saving consideration||Morning, day, evening and night hours of every day|
|Real months with respect to leap years||Flexible company's work shifts|
|Weekdays, weekends and holidays||Any more complicated time slicing|
Higher flexibility of granulation comparing to the round-robin database pays back by lower data update/retrieval performance and higher disk space consumption.
Granules use regular storage facility to keep any user-defined data for every time slice. Here are some samples:
- Average, minimum and maximum value
- Sum of values of any other equation-based result
- First and last values in the time slice, as well as their timestamps
- Counts of samples with different quality (good, bad, unreliable, etc.)
- Granule-wide marks, such as "data not available"
- Any custom numeric, textual or binary data