【发布时间】:2021-11-26 06:10:32
【问题描述】:
Apache IoTDB 中的底层存储引擎是否使用其他成熟的存储引擎,如 RocksDB、LevelDB 或 Cassandra?还是从零开始实现自己的存储引擎?
【问题讨论】:
标签: database time-series iotdb apache-iotdb
Apache IoTDB 中的底层存储引擎是否使用其他成熟的存储引擎,如 RocksDB、LevelDB 或 Cassandra?还是从零开始实现自己的存储引擎?
【问题讨论】:
标签: database time-series iotdb apache-iotdb
我们从头开始构建 Apache IoTDB :)
数据文件名为TsFile(时序文件),针对时序数据查询进行了优化。
IoTDB 引擎基于 TsFile 构建。
【讨论】:
Apache IoTDB 确实不依赖任何现有的存储引擎。事实上,它基于新开发的文件格式tsfile(与 Apache Parquet 相关)有自己的数据存储实现。有关tsfile 格式的更多信息可以在这里找到:http://iotdb.apache.org/SystemDesign/TsFile/Format.html
对于元数据存储,Apache IoTDB 依赖于它自己对已知算法/概念的实现,例如 BTree、预写日志 (WAL) 或 Raft 协议(在集群模式下)。
在下图中,您可以看到来自http://iotdb.apache.org/SystemDesign/StorageEngine/StorageEngine.html 的 Apache IoTDB 的存储引擎/架构草图:
TL;DR: Apache IoTDB 不依赖现有项目,而是基于二进制文件格式实现了与其存储引擎相关的所有内容,用于海量数据存储。
【讨论】: