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

Database Entry

ReductStore


ReductStore is a time-series database designed specifically for blob (binary) data.

Source Code
https://github.com/reductstore/reductstore[02]
Developer
Country of Origin
DE
Start Year
2021 [04]
Project Types
Commercial, Open Source
Written in
C++
Supported Languages
C++, JavaScript, Python
Operating Systems
Linux, macOS, Windows

Database Entry

ReductStore


ReductStore is a time-series database designed specifically for blob (binary) data.

Checkpoints


Compression


ReductStore packs entries (blobs) that are smaller than the minimum size of file system blocks into larger blocks that are stored as files to reduce wasted disk space. No compression algorithm is applied at any level.

Concurrency Control


Executor tasks are created from query strings strictly in FIFO order of their arrival time. There is no guarantee that tasks will run in the same order as they're created.

Data Model


Each entry is a blob associated with a key and a timestamp. Entries smaller than the file system's minimum file size are grouped and stored together in a block backed by files. A bucket contains multiple blocks. Buckets enforce storage limits (the total blob size and the total number of entries) and write behavior (reject write or delete earliest) when the storage limit is reached .

Deleting a single entry is not supported. The minimum deletion level is a bucket.

Foreign Keys


Indexes


Block begin time is defined as the creation time of the block, with microsecond precision. Multiple logical blocks with the same begin time are grouped and stored as a single file on disk. Block start timestamp is embedded in the filename for range queries to perform binary search to locate the first relevant block. No other indexes are supported.

Isolation Levels


No isolation control mechanism is implemented. Effectively Read Uncommitted.

Joins


Only range queries and continuous queries are supported.

Logging


No logging mechanism is implemented. Pending writes are all lost on system crash.

Parallel Execution


Not supported. Each query will only be assigned to a single executor.

Query Compilation


Query Execution


Each executor scans blocks from files one entry at a time. Executors are allowed to read/write blocks that reside in different files concurrently.

Query Interface


Provides HTTP methods for Entry level read, write, and range query. Provides HTTP methods for Bucket level metadata read, metadata update, create, and remove. Provides HTTP methods for Server level statistics read, bucket statistics read, and engine health check. Provides HTTP methods for token-based access control.

Storage Architecture


Storage Format


ReductStore only supports a custom storage format. Entries with sizes smaller than the file system's minimum file size are grouped as a block. Blocks with the same microsecond level begin time are grouped and stored as a single file on disk.

Storage Model


Storage Organization


Blocks are sorted by timestamp, grouped by microsecond level begin time, and stored as individual files on disk. Binary search is used to locate starting entry for range queries.

Stored Procedures


System Architecture


ReductStore is intended for single node deployment.

Views


Citations

4 sources
  1. High Performance Data Storage and Streaming for Robotics and Industrial IoT | ReductStore reduct.store
  2. GitHub - reductstore/reductstore: High Performance Data Backbone for Robotics and Industrial IoT · GitHub github.com
  3. Old Page reduct.store
  4. Initial commit github.com
Revision #5 Last Updated: