Details
-
Task
-
Status: Closed
-
Major
-
Resolution: Duplicate
Description
Apache IoTDB [1] is an Open Source IoT database designed to meet the rigorous data, storage, and analytics requirements of large-scale Internet of Things (IoT) and Industrial Internet of Things (IIoT) applications.
Different with traditional relational databases, IoTDB uses a tree-based structure to store its schema (a.k.a, metadata) in memory, and only persists the structure on disk in a write ahead log form.
In memory, the memory cost of each time series wil take about 300 bytes.
However, when the tree is too large (e.g., there are 100 million time series), IoTDB will take too much memory.
Therefore, we'd like to develop a metadata storage engine module. The engine will do the following tasks:
1. data file: Persist the tree on disk, like a b-tree structure. (need to support CRUD)
2. WAL: to accelerate the IO operation, we can save schema modification operations as Write Ahead Log, and then write back to the tree file in an atomic way.
3. Cache: If there is no much memory, just load a part of the tree into memory.
What you need:
1. Java language
2. Know some basic design idea of database data file, e.g., slot file.[2]
[1] https://iotdb.apache.org
[2] http://pages.cs.wisc.edu/~dbbook/openAccess/firstEdition/slides/pdfslides/mod2l1.pdf