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".
- Column-oriented storage.
- Based on novel LSM and B tree hybrid datastructure with multiversion concurrency control (no concurrency bugs, parallel writes, optimized for SSD and NVMe).
- Supports both metrics and events.
- Fast and effecient compression algorithm that outperforms 'Gorilla' time-series compression.
- Crash safety and recovery.
- Fast aggregation without pre-configured rollups or materialized views.
- Many queries can be executed without decompressing the data.
- Compressed in-memory storage for recent data.
- Can be used as a server application or embedded library.
- Simple API based on JSON and HTTP.
- Fast range scans and joins, read speed doesn't depend on database cardinality.
- Fast data ingestion:
- 5.4M writes/sec on DigitalOcean droplet with 8-cores 32GB of RAM (using only 6 cores)
- 4.6M writes/sec on DigitalOcean droplet with 8-cores 32GB of RAM (6 cores with enabled WAL)
- 16.1M writes/sec on 32-core Intel Xeon E5-2680 v2 (c3.8xlarge EC2 instance).
- Queries are executed lazily. Query results are produced as long as client reads them.
- Compression algorithm and input parsers are fuzz-tested on every code change.
- Grafana datasource plugin.
- Fast and compact inverted index for time-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
Akumuli supports 64 and 32-bit Intel processors. It also works on 64 and 32-bit ARM processors but these architectures are not covered by continous integration.
Pre-built Debian/RPM packages for the following platforms are available via packagecloud:
- AMD 64 Ubuntu 14.04
- AMD 64 Ubuntu 16.04
- AMD 64 Ubuntu 18.04
- AMD 64 Debian Jessie
- AMD 64 Debian Stretch
- AMD 64 CentOS 7
- ARM 64 Ubuntu 16.04
- ARM 64 Ubuntu 18.04
- ARM 64 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.
Akumuli can be used as a long-term storage for Prometheus using akumuli-prometheus-adapter.