BTrDB
BTrDB is a time-series database that stores versioned time-value streams in a time-partitioned copy-on-write tree with subtree summaries.
The FAST 2016 design stores raw points in leaves and summary statistics in internal nodes. Version annotations let it locate modified time ranges without comparing aggregate values. [1]
Python v5.34.2 documents power-of-two aligned windows, half-open time bounds and omission of empty windows. Its annotation version is separate from the data-stream version. [2]
Go bindings v5.17.1 widen changed ranges at coarser resolution. A returned range is not a list of changed samples. Query results must be checked for terminal errors even when some values arrived. [3]
Identical count, minimum, mean and maximum do not establish identical samples or temporal order. The linked synthetic examples demonstrate this limitation without executing BTrDB. [4]
Relations
Citations
- Andersen and Culler. BTrDB: Optimizing Storage System Design for Timeseries Processing. FAST 2016, pp. 39-52, sections 3-4 and 6.3.
- BTrDB Python v5.34.2 documentation: aligned_windows and stream annotations.
- BTrDB Go bindings v5.17.1: Changes, LatestVersion and query-channel completion.
- Hesela: time-series rollups, versioned changes and exact synthetic counterexamples.
Sources & caveats
- The 2016 research design and later client documentation are separate versions.
- Source review and synthetic arithmetic only; no BTrDB server, crash test or performance reproduction.