Hi guys,
Recently, I've been working on a new feature called "Multiple Directories".
Currently, the total data storage of one single IoTDB instance is limited
by the total data storage of one single disk, which prevents IoTDB storage
expansion. Moreover, users are unable to add new disks when current disk is
full, which is unacceptable in production environment.
Therefore, "Multiple Directories" intends to enable IoTDB to be configured
with multiple directories which can be with different disks. All the
directories is managed by a class called "Directories". When a new tsfile is
created, IoTDB requests a new directory from "Directories", which is
dynamically selected from all the configured directories based on the
configured strategy.
At present, three strategies are included:
1. SequenceStrategy: all directories will be selected in order;
2. MaxDiskUsableSpaceFirstStrategy: prefer the directory with the
largest free space on the disk;
3. MinFolderOccupiedSpaceFirstStrategy: prefer the directory where the
disk has the smallest footprint.
In addition, all directories with full disk will be ignored, and
DiskSpaceInsufficientException will be thrown if all disks are full. The
default strategy is MaxDiskUsableSpaceFirstStrategy, and users are able to add
customized strategy by implementing DirectoryStrategy interface and set the
full class path in the config file.
This feature is implemented in PR#190
https://github.com/apache/incubator-iotdb/pull/190
<https://github.com/apache/incubator-iotdb/pull/190> , and UTs are added in
PR#197 https://github.com/apache/incubator-iotdb/pull/197
<https://github.com/apache/incubator-iotdb/pull/197> .
——————————————————
Dongfang Mao
[email protected]