testing
How RollupDB Was Tested With Killed Processes and an Outside Reference
A database that throws data away on purpose had better be right about what it keeps. So RollupDB’s tests ask two questions over and over. Is the answer the same one …
RollupDB is an aggregate database in one file. You say what has to survive, counts, sums, extremes, averages, variance and percentiles, and it folds seconds into minutes, hours and days as the data ages. The raw events go. The history stays.
15.4 MB
Five years of history from 2.8 million readings that took 207 MB as raw JSON lines
+0.37%
Growth in file size when the same five years got twice as many readings
Exact
Count, sum, min, max and mean after five years of rollups, checked against an outside reference
0
Acknowledged writes lost in 15 runs that killed the process mid-write
From the recorded test run in the code repository, on a 4-CPU Linux runner. Sizes are completed snapshot files.
testing
A database that throws data away on purpose had better be right about what it keeps. So RollupDB’s tests ask two questions over and over. Is the answer the same one …
release
RollupDB 0.4.0 is out. Since the first release three things have been added, one per version: rollups that run on their own, stream definitions you can change after the …
release
RollupDB 0.1 is out, under the Apache License 2.0. It’s an aggregate database in one file: you tell it which statistics matter, and it keeps those for years while …
explainer
Most databases keep what you put in. An aggregate database doesn’t. It keeps what you’ll ask about later, and only that. You tell it up front: for this stream …
project
A rollup is what monitoring people have called this for decades. You take sixty one-second readings and roll them up into one minute. Then sixty minutes into an hour, and …
One binary, no server and no CGo. The quick start creates a database, defines a stream, loads ten thousand readings and asks for their percentiles.