Skip to content

RobustMQ Storage Layer Design ​

Continuing from the previous article, to satisfy various scenarios, in our vision RobustMQ's pluggable storage layer mainly consists of the following three types:

  1. RocksDB and Memory in standalone mode: Mainly for running test cases in standalone mode and single-node deployment scenarios that require persistent storage.
  2. Segment Engine: RobustMQ's built-in storage layer. It is RobustMQ's core storage layer and is built into RobustMQ. It is used to meet low-latency storage scenarios.
    1. Local storage: Local file-based persistent distributed storage
    2. External storage: Such as S3 (cloud object storage), HDFS, MinIO, or even MySQL, Redis, etc.

Storage Adapter ​

As mentioned in previous articles, RobustMQ's storage layer is uniformly distributed and stored through the Storage Adapter. See the article: Storage Layer Storage Adapter Architecture

Shard Abstraction ​

Standalone Mode ​

Because RocksDB's performance is sufficient, RocksDB storage engine is recommended for standalone persistent deployment scenarios. For local development and running test cases, Memory is recommended.

Segment Engine ​

Multiple Shard Types ​

  1. Segmented / non-segmented
  2. Memory storage / file storage

Data is stored in files in segments. Multiple replicas for consistency can be configured optionally.

Tiered Storage ​

Segmented data is stored to remote storage.

External Storage ​

Direct storage to external storage engines.

🎉 既然都登录了 GitHub,不如顺手给我们点个 Star 吧!⭐ 你的支持是我们最大的动力 🚀