DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

Heroic


Heroic is an open-source times-series DBMS built at Spotify.

Source Code
https://github.com/spotify/heroic[02]
Developer
Country of Origin
SE
Start Year
2014 [05]
End Year
2019 [06]
Project Type
Open Source
Written in
Java
Supported Languages
Java, Python
Operating System
All OS with Java VM
License
Apache v2

Database Entry

Heroic


Heroic is an open-source times-series DBMS built at Spotify.

Data Model[04]


Heroic uses a key/value data model, where each key is comprised of a “unique set of tags and resource identifiers” that correspond to a single series. In this context, we define tags as the database data that can be indexed and will be retained within the database. Additionally, each tag also has its corresponding-time series stored with the data. Tags are thus used in complex queries for both filtering and aggregations, as described by the GitHub Documentation. On the other hand, a Resource Identifier is data that cannot be indexed. However the data itself is still stored with this corresponding-time series. Thus, the purpose of resource identifiers itself is to ensure that data which is constantly changing can still be stored and accessed as per its time-series. As the GitHub documentation gives as example, if the hostname field were to change often, rather than retaining the field, for the purpose of maintaining time-series data as the documentation describes, we would keep hostname as a Resource Identifier and not a tag. As such, resource identifiers are used for querying based off of aggregations.

Citations

6 sources
  1. Heroic Documentation github.io
  2. GitHub - spotify/heroic: The Heroic Time Series Database · GitHub github.com
  3. Heroic Documentation github.io
  4. Heroic Documentation github.io
  5. initial commit github.com
  6. Fallback to DOCKER_TAG when setting version. (#585) github.com
Revision #5 Last Updated: