Hi all, As the first release is almost complete (72 hours is coming), we need to consider the compatibility of IoTDB in the future version.
Zhu has give a PR [1] for modify the magic number of TsFile. And, the compatibility problem is quite occurs: in Tian Jiang's PR [2], fileMetadata is modified so if we do not handle the case, then error happens if we use the branch code to read file data in 0.8.0. I list the potential compatibility problems: 1. TsFile has the compatibility problem. The question is, do we need to update the magic number for each version? e.g., in IoTDB v0.8.1, change the magic number from "TsFilev0.8.0" to "TsFilev0.8.1", and in IoTDB v0.9.0, change the magic number from "TsFilev0.8.0" to "TsFilev0.9.0". If so, we can maintain a compatible list, e.g., IoTDB v1.0 supports TsFilev0.8.0~TsFilev1.0.0. If the magic number is incompatible, then throw exception. Besides, we can provide a script to upgrade the file format. Or, we can keep the Magic number constant if the versions are compatible. e.g., if IoTDB v1.0 supports tsfiles that written by IoTBv0.8~v1.0, we always use TsFilev0.8.0 as the magic number. If so, we find the magic number is incorrect, we throw exception. 2. IoTDB system data has also the compatibility problem. However, current these files do not have a marker to show which version they are. 3. IoTDB RPC module also has the problem. For example, current master branch is incompatible with v0.8 because of a PR introduced by Yue su or Leirui (I forget the PR number). So, the client need to tell the server which rpc protocol it uses. I also create an issue to discuss and work on it: https://issues.apache.org/jira/browse/IOTDB-165 Best, [1] https://github.com/apache/incubator-iotdb/pull/337 [2] https://github.com/apache/incubator-iotdb/pull/258 ----------------------------------- Xiangdong Huang School of Software, Tsinghua University 黄向东 清华大学 软件学院
