Skip to content

ModelarDB: Model-Based Time Series Management from Edge to Cloud

License

Notifications You must be signed in to change notification settings

ModelarData/ModelarDB-RS

Repository files navigation

ModelarDB

⚠️ The current version of ModelarDB is alpha software and not yet ready for production use.

Cargo Build, Lint, and Test

ModelarDB is an efficient high-performance time series management system that is designed to efficiently ingest, transfer, store, and analyze high-frequency time series across the edge and cloud. It provides state-of-the-art lossless compression, lossy compression, and query performance by efficiently compressing time series on the edge using multiple different types of models such as constant and linear functions. As a result, the high-frequency time series can be transferred to the cloud through a connection with very limited bandwidth and stored in the cloud at a low cost. The compressed time series can be efficiently queried on both the edge and in the cloud using a relational interface and SQL without any knowledge about the model-based representation. A query optimizer automatically rewrites the queries to exploit the model-based representation.

ModelarDB is designed to be cross-platform and is currently automatically tested on Microsoft Windows, macOS, and Ubuntu through GitHub Actions. It is also known to work on FreeBSD which is currently not supported by GitHub Actions. It is implemented in Rust and uses Apache Arrow Flight for communicating with clients, Apache Arrow DataFusion as its query engine, Apache Arrow as its in-memory data format, and Apache Parquet as its on-disk data format.

ModelarDB intentionally does not gather usage data. So, all users are highly encouraged to post comments, suggestions, and bugs as GitHub issues, especially if a limitation of ModelarDB prevents it from being used in a particular domain.

Installation

Refer to the Installation section of the User documentation for installation instructions on setting up ModelarDB on four major operating systems. To easily experiment with ModelarDB, instructions for setting up a Docker environment are included in the Docker section.

Usage

Usage instructions for running a server, ingesting data, and querying data using ModelarDB are included in the Usage section of the User documentation.

Development

Refer to the Development section of the documentation for an overview of the structure of the project, a detailed description of each major component, and an outline of the guidelines that should be adhered to when contributing to the project.

Research-Based

A deprecated JVM-based prototype of ModelarDB was developed as part of a research project at Aalborg University and later as an open-source project. While the deprecated JVM-based prototype validated the benefits of using a model-based representation for time series, it has been superseded by this current, much more efficient, Rust-based implementation.

License

ModelarDB is licensed under version 2.0 of the Apache License and a copy of the license is bundled with the program.