like graphite but for redis
namevariable is the full name of the key to use with redis
timeslotsvariable is the length of the array
timeslotLengthvariable is the difference between the beginning times of the slots, or the length of the slots themselves
- data is dropped from the end as new data comes in
The values in this array are of the format
[ "time", "value" ]
Where redis is a connected instance of redis.
check for the series in the database
if a series is found verify the slots match the number in the schema else initialize a new series with the schema
- incrmeent series slot
seriesincr1339644364453 2seriesincr1339644364453seriesincr1339644364453 2seriesincr1339644364453
Check to make sure the value is a number and check to make sure the timestamp is valid.
Use value provided or default from schema
Callback error if timestamp is not a valid timestamp and determine which slot to add the value to. If there isnt a valid place to add the value callback an error (e.g. too far in the past)
4a. if the timestamp is in the future then create new time slots to bring the series data up to the provided time -- this usually creates 1 additional field but with less active series this may create many new time slots
4b. Increment the slot by the value. Note that the timestamp can be any timestamp within the currently recorded length of time, as the correct slot will be determined based on the series schema.
- return all the series data
seriesgetAll// do something with series// ...
- set a slot to a specific value
- callback the old slot
seriessetValue1339644364453 12seriessetValue1339644364453 12
Identifies the slot to set. Note that like
incrthe timestamp can be any timestamp and the correct slot will be determined from the provided value.
Set the slot to the new value