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".
Features
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.