Hi,

We're going to introduce PB Tree (Prefix-B+ Tree), a new SchemaEgnine
mode, in V1.2.0, which supports evict temporarily useless schema to
disk and load them back in need at runtime. With PB Tree, users will
not suffer from memory constraint for schema management any more,
especially in scenarios with massive time series.

To enable PB Tree in IoTDB, the value of parameter named
schema_engine_mode in iotdb-commons.properties should be configured as
PB_Tree [1]. All the memory allocated for SchemaRegion will be used by
PB Tree. The allocation can be modified by changing the value of
parameters named storage_query_schema_consensus_free_memory_proportion
and schema_memory_proportion in iotdb-commons.properties.

PB Tree is a new implementation of MTree in SchemaRegion, consisting
of a a PB Tree file and a prefix-tree-structured cache. The PB Tree
file manages the prefix tree structure on disk by storing pointer
pointing to first disk page storing children nodes in each node
record. B+ Tree is used to manage brother nodes for fast single child
node search. The cache is similar to the existing MTree implementation
in SchemaRegion. The main difference is that the children of a node
may not cached in memory, which should be read from disk by searching
specific B+ Tree located by pointer stored in node record and cached
in memory node object.

Reference:
[1] 
https://iotdb.apache.org/zh/UserGuide/V1.2.x/Reference/Common-Config-Manual.html#%E5%85%83%E6%95%B0%E6%8D%AE%E5%BC%95%E6%93%8E%E9%85%8D%E7%BD%AE

Thanks.
____________________
Yunkun Zhou
Apache IoTDB Committer

Reply via email to