Giter VIP home page Giter VIP logo

timeseriesdb's Introduction

TimeSeriesDB

A rust implementation of a time series focused database. There are three modules included in this repo:

Ingestion

There are several basic structures implemented for the TimeSeriesDB. Two buffer pools are designed for ingestion and compression purpose respectively. We use clients to generate configurable data streaming. For each signal from the clients, the system buffers and process those data as the unit of the segment. All the ingested segments are saved in the raw buffer pool. The compression thread fetches segments from the raw buffer pool, compress and save the compressed segment into the compressed buffer pool, then materialize into storage when necessary.

Use following command to run a ingestion experiment with 2 gzip compression threads:

run --package time_series_start --bin time_series_start ./test_configs/config-single.toml f64 gzip 2

Compression

There are comprehensive compression methods implemented in the methods folder. Those methods include byte-oriented compression methods (e.g. deflate, gzip, snappy, zlib), Gorilla, Fourier, PAA for Double data type. FCM/DFCM, Bit-Packing, Delta-BP are implemented for the Integer data type as well.

All those compression methods implement the trait

trait CompressionMethod<T>

Use the following Cargo command to run compression experiments. This command will run gorilla compression on the f64 data segment extracted from the input file.

run --release --package time_series_start --bin compress ../UCRArchive2018/Kernel/randomwalkdatasample1k-10k f64 gorilla

Query

Some basic aggregation query is implemented under the query folder.

Issues

Run

sudo apt install make clang pkg-config libssl-dev

to solve the error "failed to run custom build command for librocksdb-sys v5.18.3"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.