{"id":13419925,"url":"https://github.com/akumuli/Akumuli","last_synced_at":"2025-03-15T06:30:50.073Z","repository":{"id":13633315,"uuid":"16326644","full_name":"akumuli/Akumuli","owner":"akumuli","description":"Time-series database","archived":false,"fork":false,"pushed_at":"2022-08-07T01:52:15.000Z","size":5352,"stargazers_count":836,"open_issues_count":63,"forks_count":85,"subscribers_count":44,"default_branch":"master","last_synced_at":"2024-07-31T22:52:42.535Z","etag":null,"topics":["c-plus-plus","database","metrics","time-series","time-series-database","tsdb"],"latest_commit_sha":null,"homepage":"http://akumuli.org","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akumuli.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-01-28T21:31:20.000Z","updated_at":"2024-06-26T09:05:06.000Z","dependencies_parsed_at":"2022-07-15T14:48:00.310Z","dependency_job_id":null,"html_url":"https://github.com/akumuli/Akumuli","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akumuli%2FAkumuli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akumuli%2FAkumuli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akumuli%2FAkumuli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akumuli%2FAkumuli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akumuli","download_url":"https://codeload.github.com/akumuli/Akumuli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243694813,"owners_count":20332619,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","database","metrics","time-series","time-series-database","tsdb"],"created_at":"2024-07-30T22:01:22.938Z","updated_at":"2025-03-15T06:30:49.587Z","avatar_url":"https://github.com/akumuli.png","language":"C++","readme":"README [![Build Status](https://travis-ci.org/akumuli/Akumuli.svg?branch=master)](https://travis-ci.org/akumuli/Akumuli) [![Coverity Scan Build Status](https://scan.coverity.com/projects/8879/badge.svg)](https://scan.coverity.com/projects/akumuli) \n======\n\n**Akumuli** is a time-series database for modern hardware. \nIt can be used to capture, store and process time-series data in real-time. \nThe word \"akumuli\" can be translated from Esperanto as \"accumulate\".\n\nFeatures\n-------\n\n* Column-oriented storage.\n* Based on novel [LSM and B+tree hybrid datastructure](http://akumuli.org/akumuli/2017/04/29/nbplustree/) with multiversion concurrency control (no concurrency bugs, parallel writes, optimized for SSD and NVMe).\n* Supports both metrics and events.\n* Fast and effecient compression algorithm that outperforms 'Gorilla' time-series compression.\n* Crash safety and recovery.\n* Fast aggregation without pre-configured rollups or materialized views.\n* Many queries can be executed without decompressing the data.\n* Compressed in-memory storage for recent data.\n* Can be used as a server application or embedded library.\n* Simple API based on JSON and HTTP.\n* Fast range scans and joins, read speed doesn't depend on database cardinality.\n* Fast data ingestion:\n  * 5.4M writes/sec on DigitalOcean droplet with 8-cores 32GB of RAM (using only 6 cores)\n  * 4.6M writes/sec on DigitalOcean droplet with 8-cores 32GB of RAM (6 cores with enabled WAL)\n  * 16.1M writes/sec on 32-core Intel Xeon E5-2680 v2 (c3.8xlarge EC2 instance).\n* Queries are executed lazily. Query results are produced as long as client reads them.\n* Compression algorithm and input parsers are fuzz-tested on every code change.\n* Grafana [datasource](https://github.com/akumuli/akumuli-datasource) plugin.\n* Fast and compact inverted index for time-series lookup.\n\n\nRoadmap\n------\n\n|Storage engine features        |Current version|Future versions|\n|-------------------------------|---------------|---------------|\n|Inserts                        |In order       |Out of order   |\n|Updates                        |-              |+              |\n|Deletes                        |-              |+              |\n|MVCC                           |+              |+              |\n|Compression                    |+              |+              |\n|Tags                           |+              |+              |\n|High-throughput ingestion      |+              |+              |\n|High cardinality               |+              |+              |\n|Crash recovery                 |+              |+              |\n|Incremental backup             |-              |+              |\n|Clustering                     |-              |+              |\n|Replication                    |-              |+              |\n|ARM support                    |+              |+              |\n|Windows support                |-              |+              |\n\n|Query language features        |Current version|Future versions|\n|-------------------------------|---------------|---------------|\n|Range scans                    |+              |+              |\n|Merge series                   |+              |+              |\n|Aggregate series               |+              |+              |\n|Merge \u0026 aggregate              |+              |+              |\n|Group-aggregate                |+              |+              |\n|Group-aggregate \u0026 merge        |+              |+              |\n|Join                           |+              |+              |\n|Join \u0026 merge                   |-              |+              |\n|Join \u0026 group-aggregate         |-              |+              |\n|Join \u0026 group-aggregate \u0026 merge |-              |+              |\n|Filter by value                |+              |+              |\n|Filter \u0026 group-aggregate       |+              |+              |\n|Filter \u0026 join                  |+              |+              |\n\n\nGettings Started\n----------------\n* You can find [documentation](https://akumuli.gitbook.io/docs) here\n* [Installation \u0026 build instructions](https://akumuli.gitbook.io/docs/getting-started)\n* [Getting started guide](https://akumuli.gitbook.io/docs/getting-started)\n* [Writing data](https://akumuli.gitbook.io/docs/writing-data)\n\nSupported Platforms\n-------------------\n\nAkumuli 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.\n\nPre-built [Debian/RPM packages](https://packagecloud.io/Lazin/Akumuli) for the following platforms\nare available via packagecloud:\n\n* AMD 64 Ubuntu 14.04\n* AMD 64 Ubuntu 16.04\n* AMD 64 Ubuntu 18.04\n* AMD 64 Debian Jessie\n* AMD 64 Debian Stretch\n* AMD 64 CentOS 7\n* ARM 64 Ubuntu 16.04\n* ARM 64 Ubuntu 18.04\n* ARM 64 CentOS 7\n\nDocker image is availabe through [Docker Hub](https://hub.docker.com/r/akumuli/akumuli/tags/).\n\nTools for monitoring\n--------------------\n\nAkumuli supports OpenTSDB telnet-style API for writing. This means that many collectors works with it\nwithout any trouble, for instance `netdata`, `collectd`, and `tcollector`. Grafana\n[datasource](https://github.com/akumuli/akumuli-datasource) plugin is availabe as well.\nAkumuli can be used as a long-term storage for Prometheus using [akumuli-prometheus-adapter](https://github.com/akumuli/akumuli-prometheus-adapter).\n\n[Google group](https://groups.google.com/forum/#!forum/akumuli)\n","funding_links":[],"categories":["TODO scan for Android support in followings","\u003ca name=\"cpp\"\u003e\u003c/a\u003eC++","Database","Time-Series Databases","Databases","C++"],"sub_categories":["Time Series Database"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakumuli%2FAkumuli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakumuli%2FAkumuli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakumuli%2FAkumuli/lists"}