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
