Apache IoTDB 底层存储引擎是否使用其他成熟的存储引擎,如 RocksDB、LevelDB 或 Cassandra?或者它从头开始实现自己的存储引擎?
Apache IoTDB 确实不依赖于任何现有的存储引擎。事实上,它有自己的数据存储实现,基于新开发的文件格式
tsfile
(与 Apache Parquet 相关)。有关 tsfile
格式的更多信息,请访问:http://iotdb.apache.org/SystemDesign/TsFile/Format.html
对于元数据存储,Apache IoTDB 也依赖于自己对已知算法/概念的实现,例如 BTree、预写日志 (WAL) 或 Raft 协议(集群模式)。
在下图中,您可以看到 Apache IoTDB 的存储引擎/架构的草图,取自 http://iotdb.apache.org/SystemDesign/StorageEngine/StorageEngine.html:
TL;博士: Apache IoTDB 不依赖于现有项目,而是基于用于海量数据存储的二进制文件格式全新实现了与其存储引擎相关的所有内容。
我们从头开始构建 Apache IoTDB :)
数据文件称为TsFile(Time series File),针对时间序列数据查询进行了优化。
IoTDB引擎基于TsFile构建。