- the incoming data point is written to all archives at once
- so for lower resolution, you move the windows in higher resolution and calculate the new value?
- http://graphite.readthedocs.io/en/latest/whisper.html
- https://github.com/graphite-project/whisper
- On Disk Size: fixed
- Time Interval: constant
- Time precision: Unix timestamp in seconds
- Value precision: python
float
- which is pretty big, how is it serialized on disk, and it can be compressed using general compression algorithm
- Store Timestamp: Yes
- full timestamp?
- 'To support accurate aggregation from higher to lower resolution archives, the precision of a longer retention archive must be divisible by precision of next lower retention archive'
- 'Whisper will not do partial point interpolation' (插值)
For example, an archive with 1 data point every 60 seconds can have a lower-resolution archive following it with a resolution of 1 data point every 300 seconds because 60 cleanly divides 300. In contrast, a 180 second precision (3 minutes) could not be followed by a 600 second precision (10 minutes) because the ratio of points to be propagated from the first archive to the next would be 3 1/3 and Whisper will not do partial point interpolation.
-
Rollup Aggregation
- avg
- sum
- last
- max
- min
-
the incoming data point is written to all archives at once
-
Each data point is stored with its timestamp
Rather than a timestamp being inferred from its position in the archive, timestamps are stored with each point. The timestamps are used during data retrieval to check the validity of the data point. If a timestamp does not match the expected value for its position relative to the beginning of the requested series, it is known to be out of date and a null value is returned