Akumuli is a time-series database for modern hardware. It can be used to capture, store and process time-series data in real-time. The word "akumuli" can be translated from Esperanto as "accumulate".
- True column-oriented format (not PAX).
- Based on novel LSM and B+tree hybrid datastructure with multiversion concurrency control (no concurrency bugs, parallel writes, optimized for SSD and NVMe).
- Crash safety and recovery.
- Fast aggregation without pre-configured rollups or materialized views.
- Queries can be executed without decompressing the data.
- Fast compression algorithm (dictionary + entropy) with small memory overhead (about 2.5 bytes per element on appropriate data).
- Compressed in-memory storage for recent data.
- Can be used as a server application or an embedded library.
- Simple query language based on JSON and HTTP.
- Fast range scans and joins, read speed doesn't depend on database cardinality.
- Fast data ingestion over the network:
- 4.5M data points per second on 8-core Intel Xeon E5-2670 v2 (m3.2xlarge EC2 instance).
- 16.1M data points per second on 32-core Intel Xeon E5-2680 v2 (c3.8xlarge EC2 instance).
- Query results are streamed to client using the chunked transfer encoding of the HTTP protocol.
- Decompression algorithm and input parsers were fuzz-tested.
- Grafana datasource plugin.
- Fast and compact inverted index for series lookup.
| Storage engine features | Current version | Future versions |
|---|---|---|
| Inserts | In order | Out of order |
| Updates | - | + |
| Deletes | - | + |
| MVCC | + | + |
| Compression | + | + |
| Tags | + | + |
| High-throughput ingestion | + | + |
| High cardinality | - | + |
| Crash recovery | + | + |
| Incremental backup | - | + |
| Clustering | - | + |
| Replication | - | + |
| ARM support | - | + |
| Windows support | - | + |
| Query language features | Current version | Future versions |
|---|---|---|
| Range scans | + | + |
| Merge series | + | + |
| Aggregate series | + | + |
| Merge & aggregate | + | + |
| Group-aggregate | + | + |
| Group-aggregate & merge | - | + |
| Join | + | + |
| Join & merge | - | + |
| Join & group-aggregate | - | + |
| Join & group-aggregate & merge | - | + |
| Filter by value | + | + |
| Filter & group-aggregate | + | + |
| Filter & join | + | + |
- You can find documentation here
- Installation & build instructions
- Getting started guide
- Writing data
Pre-built Debian/RPM packages for the following platforms are available via packagecloud:
- Ubuntu 14.04
- Ubuntu 16.04
- Debian Jessie
- Debian Stretch
- CentOS 7
Docker image is availabe through Docker Hub.
Akumuli supports OpenTSDB telnet-style API for writing. This means that many collectors works with it
without any trouble, for instance netdata, collectd, and tcollector. Grafana
datasource plugin is availabe as well.