[ https://issues.apache.org/jira/browse/IOTDB-2042?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Zhong Wang reassigned IOTDB-2042: --------------------------------- Assignee: Zhong Wang > Data loss after restart > ----------------------- > > Key: IOTDB-2042 > URL: https://issues.apache.org/jira/browse/IOTDB-2042 > Project: Apache IoTDB > Issue Type: Bug > Reporter: Zhong Wang > Assignee: Zhong Wang > Priority: Major > Labels: Cluster > > Way to reproduce: > 1. Enable time partitioning. Set the partition_interval to 2592000 (30 days). > 2. Start a 3 node cluster with 2 replicas. > 3. Insert the following values on node 3: > {code:sql} > insert into root.group_1.d_1(timestamp, s_1) > values(2018-07-18T00:00:00.000+08:00, 18.0) > insert into root.group_1.d_1(timestamp, s_1) > values(2018-07-19T00:00:00.000+08:00, 19.0) > insert into root.group_1.d_1(timestamp, s_1) > values(2019-08-19T00:00:00.000+08:00, 20.0) > {code} > 4. Restart the cluster. > 5. Execute the following query on each node. Node 2 will return an empty > result set: > {code:sql} > SELECT * FROM root > {code} > Some of the TSFiles are empty after recovery, which is unexpected. > Reason: > When time partitioning is enabled, although the data of a time series can be > distributed across the whole cluster, its metadata is only stored in the data > group corresponding to the hash value calculated from its storage group and > timestamp 0. > When a node from another data group receives insertions of the time series, > it will send a request to whoever has the metadata and cache the response, > but the cache will not be persisted. Thus, if the node crashes, it is not > able to recover from the WAL since the cache is not available anymore. -- This message was sent by Atlassian Jira (v8.20.1#820001)