What's the underlying storage engine in Apache IoTDB?

Viewed 95

Dose the underlying storage engine in Apache IoTDB use other mature storage engine, like RocksDB, LevelDB or Cassandra? Or it implements its own storage engine from sratch?

2 Answers

We build Apache IoTDB from scratch :)

The data file is called TsFile (Time series File), which is optimized for time series data query.

IoTDB engine is built based on TsFile.

Apache IoTDB does not rely on any existing storage engine indeed. In fact, it has its own implementation for the datastore based on a newly developed file format tsfile (which is related to Apache Parquet). More information on the tsfile Format can be found here: http://iotdb.apache.org/SystemDesign/TsFile/Format.html

Also for metadata storage, Apache IoTDB relies on its own implementation of the known algorithms / concepts like BTrees, the write ahead log (WAL) or the Raft protocol (in Cluster mode).

In the following picture you see a sketch of the storage engine / architecture of Apache IoTDB taken from http://iotdb.apache.org/SystemDesign/StorageEngine/StorageEngine.html:

enter image description here

TL;DR: Apache IoTDB does not rely on existing projects but implements everything related to its storage engine completely new based on a binary file format for mass data storage.

Related