You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ji...@apache.org on 2020/04/14 09:07:02 UTC

[incubator-iotdb] branch cluster_data_snapshot updated: complete pull snapshot

This is an automated email from the ASF dual-hosted git repository.

jiangtian pushed a commit to branch cluster_data_snapshot
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git


The following commit(s) were added to refs/heads/cluster_data_snapshot by this push:
     new d9e49c1  complete pull snapshot
d9e49c1 is described below

commit d9e49c1cdeaebe3442f08cac603d7bda0a870f78
Author: jt2594838 <jt...@163.com>
AuthorDate: Tue Apr 14 17:06:49 2020 +0800

    complete pull snapshot
---
 .../1586855177260_-2906572311297045559.task        | Bin 0 -> 456 bytes
 .../1586855177260_-5966149551635805162.task        | Bin 0 -> 457 bytes
 .../1586855177260_-6473960063015821594.task        | Bin 0 -> 457 bytes
 .../1586855177260_-6971088147012933797.task        | Bin 0 -> 457 bytes
 .../1586855177260_-8802450801292086998.task        | Bin 0 -> 457 bytes
 .../1586855177260_4958290396637302958.task         | Bin 0 -> 457 bytes
 .../1586855177260_8003556003782527390.task         | Bin 0 -> 457 bytes
 .../1586855177261_9179839299472003393.task         | Bin 0 -> 457 bytes
 .../1586854300477_-8093255050355868222.task        | Bin 0 -> 457 bytes
 .../1586854300477_201554106005965871.task          | Bin 0 -> 456 bytes
 .../1586854300478_-43686069112552721.task          | Bin 0 -> 457 bytes
 .../1586854300478_1901936060513469601.task         | Bin 0 -> 457 bytes
 .../1586854300478_2644890865304418287.task         | Bin 0 -> 457 bytes
 .../1586854300478_7311279011058754427.task         | Bin 0 -> 457 bytes
 .../1586854300478_9149129399465718640.task         | Bin 0 -> 457 bytes
 .../1586854300478_9199364059689691240.task         | Bin 0 -> 457 bytes
 .../1586852414399_-2392883929377559247.task        | Bin 0 -> 457 bytes
 .../1586852414399_-4735856890665263801.task        | Bin 0 -> 457 bytes
 .../1586852414399_-7517962571549373806.task        | Bin 0 -> 457 bytes
 .../1586852414399_4931321917636572968.task         | Bin 0 -> 457 bytes
 .../1586852414399_7682065158849184796.task         | Bin 0 -> 456 bytes
 .../1586852414399_931552093250355745.task          | Bin 0 -> 457 bytes
 .../1586852414400_-4947101348307211669.task        | Bin 0 -> 457 bytes
 .../1586852414400_-9120641957196649928.task        | Bin 0 -> 457 bytes
 .../1586851415860_2516562531359801579.task         | Bin 0 -> 457 bytes
 .../1586851415861_-7472402451283907695.task        | Bin 0 -> 457 bytes
 .../1586851415861_4354020534664290175.task         | Bin 0 -> 456 bytes
 .../1586851415861_4390161213522359034.task         | Bin 0 -> 457 bytes
 .../1586851415861_8971648548118503590.task         | Bin 0 -> 457 bytes
 .../1586851415862_-8859101459589305518.task        | Bin 0 -> 457 bytes
 .../1586851415862_8160495926266130107.task         | Bin 0 -> 457 bytes
 .../1586851415864_5383095389576991736.task         | Bin 0 -> 457 bytes
 .../1586835986280_-3320494564920408745.task        | Bin 0 -> 456 bytes
 .../1586835986280_-7489914226286127524.task        | Bin 0 -> 457 bytes
 .../1586835986281_-4671456328859670553.task        | Bin 0 -> 457 bytes
 .../1586835986281_-656359249422795972.task         | Bin 0 -> 457 bytes
 .../1586835986281_-948823018901582853.task         | Bin 0 -> 457 bytes
 .../1586835986281_4470132570545107636.task         | Bin 0 -> 457 bytes
 .../1586835986281_8171546385281388961.task         | Bin 0 -> 457 bytes
 .../1586835986281_8967413450799695062.task         | Bin 0 -> 457 bytes
 .../1586835978782_-7495399798836496627.task        | Bin 0 -> 3420 bytes
 .../1586851408237_2270566744886558294.task         | Bin 0 -> 3420 bytes
 .../1586852406451_7103234148675602661.task         | Bin 0 -> 3420 bytes
 .../1586854292184_1418233161977182504.task         | Bin 0 -> 3420 bytes
 .../1586855169548_4741845169826760313.task         | Bin 0 -> 3420 bytes
 .../1586835978776_-5562857656189187752.task        | Bin 0 -> 2088 bytes
 .../1586851408219_-8205731266190660230.task        | Bin 0 -> 2088 bytes
 .../1586852406433_-5244520012648944557.task        | Bin 0 -> 2088 bytes
 .../1586854292159_-3146378836071162165.task        | Bin 0 -> 2088 bytes
 .../1586855169540_-6658772559513582825.task        | Bin 0 -> 2088 bytes
 .../1586835978772_-6875543191180596302.task        | Bin 0 -> 1424 bytes
 .../1586851408199_3962424538201264612.task         | Bin 0 -> 1424 bytes
 .../1586852406405_7112201249736427437.task         | Bin 0 -> 1424 bytes
 .../1586854292132_891311129989297387.task          | Bin 0 -> 1424 bytes
 .../1586855169531_-3309812358258853569.task        | Bin 0 -> 1424 bytes
 .../1586835978768_-3009429696264373350.task        | Bin 0 -> 1044 bytes
 .../1586851408185_-1091732597092706166.task        | Bin 0 -> 1044 bytes
 .../1586852406357_6777186873951866641.task         | Bin 0 -> 1044 bytes
 .../1586854292100_-8133264438068695900.task        | Bin 0 -> 1044 bytes
 .../1586855169521_1095023885222012287.task         | Bin 0 -> 1044 bytes
 .../1586835978762_-5642968854276382260.task        | Bin 0 -> 804 bytes
 .../1586851408164_-4078765804890805468.task        | Bin 0 -> 804 bytes
 .../1586852406337_-7811845390832975705.task        | Bin 0 -> 804 bytes
 .../1586854292063_4916534122808476444.task         | Bin 0 -> 804 bytes
 .../1586855169513_-2615850524724134501.task        | Bin 0 -> 804 bytes
 .../1586835978756_4016266948906320695.task         | Bin 0 -> 644 bytes
 .../1586835982845_8830405749105112166.task         | Bin 0 -> 644 bytes
 .../1586851408139_2877624854787377919.task         | Bin 0 -> 644 bytes
 .../1586851412411_-279210180685768799.task         | Bin 0 -> 644 bytes
 .../1586852406271_8214115572938737153.task         | Bin 0 -> 644 bytes
 .../1586852410896_-5408637203974222295.task        | Bin 0 -> 644 bytes
 .../1586854291944_6371281773062749942.task         | Bin 0 -> 644 bytes
 .../1586854296839_-5691420980712849780.task        | Bin 0 -> 644 bytes
 .../1586855169495_-6591674811258001183.task        | Bin 0 -> 644 bytes
 .../1586855173927_-1803686077397573050.task        | Bin 0 -> 644 bytes
 .../iotdb/cluster/log/applier/BaseApplier.java     |   2 +-
 .../iotdb/cluster/log/applier/DataLogApplier.java  |  61 ++++++++++++++-
 .../cluster/log/snapshot/RemoteFileSnapshot.java   |  73 ------------------
 .../iotdb/cluster/log/snapshot/RemoteSnapshot.java |  28 -------
 .../cluster/server/member/DataGroupMember.java     |  36 +++++----
 .../cluster/server/member/MetaGroupMember.java     |   3 +-
 .../iotdb/cluster/common/TestDataGroupMember.java  |   4 +
 .../cluster/common/TestRemoteFileSnapshot.java     |  85 ---------------------
 .../cluster/log/applier/DataLogApplierTest.java    |   5 +-
 .../FilePartitionedSnapshotLogManagerTest.java     |  38 ---------
 .../cluster/server/member/DataGroupMemberTest.java |  57 +++++---------
 .../cluster/server/member/MetaGroupMemberTest.java |   8 +-
 .../engine/storagegroup/StorageGroupProcessor.java |  18 ++++-
 .../db/engine/storagegroup/TsFileResource.java     |   4 +-
 .../org/apache/iotdb/db/metadata/MManager.java     |   2 +-
 .../java/org/apache/iotdb/db/metadata/MTree.java   |   2 +-
 91 files changed, 134 insertions(+), 292 deletions(-)

diff --git a/cluster/raft/-1476006343/snapshot_task/1586855177260_-2906572311297045559.task b/cluster/raft/-1476006343/snapshot_task/1586855177260_-2906572311297045559.task
new file mode 100644
index 0000000..f1eb2ae
Binary files /dev/null and b/cluster/raft/-1476006343/snapshot_task/1586855177260_-2906572311297045559.task differ
diff --git a/cluster/raft/-1476006343/snapshot_task/1586855177260_-5966149551635805162.task b/cluster/raft/-1476006343/snapshot_task/1586855177260_-5966149551635805162.task
new file mode 100644
index 0000000..9321c1d
Binary files /dev/null and b/cluster/raft/-1476006343/snapshot_task/1586855177260_-5966149551635805162.task differ
diff --git a/cluster/raft/-1476006343/snapshot_task/1586855177260_-6473960063015821594.task b/cluster/raft/-1476006343/snapshot_task/1586855177260_-6473960063015821594.task
new file mode 100644
index 0000000..fd6489f
Binary files /dev/null and b/cluster/raft/-1476006343/snapshot_task/1586855177260_-6473960063015821594.task differ
diff --git a/cluster/raft/-1476006343/snapshot_task/1586855177260_-6971088147012933797.task b/cluster/raft/-1476006343/snapshot_task/1586855177260_-6971088147012933797.task
new file mode 100644
index 0000000..3448e26
Binary files /dev/null and b/cluster/raft/-1476006343/snapshot_task/1586855177260_-6971088147012933797.task differ
diff --git a/cluster/raft/-1476006343/snapshot_task/1586855177260_-8802450801292086998.task b/cluster/raft/-1476006343/snapshot_task/1586855177260_-8802450801292086998.task
new file mode 100644
index 0000000..dbfa65f
Binary files /dev/null and b/cluster/raft/-1476006343/snapshot_task/1586855177260_-8802450801292086998.task differ
diff --git a/cluster/raft/-1476006343/snapshot_task/1586855177260_4958290396637302958.task b/cluster/raft/-1476006343/snapshot_task/1586855177260_4958290396637302958.task
new file mode 100644
index 0000000..f0f6fac
Binary files /dev/null and b/cluster/raft/-1476006343/snapshot_task/1586855177260_4958290396637302958.task differ
diff --git a/cluster/raft/-1476006343/snapshot_task/1586855177260_8003556003782527390.task b/cluster/raft/-1476006343/snapshot_task/1586855177260_8003556003782527390.task
new file mode 100644
index 0000000..ce8189c
Binary files /dev/null and b/cluster/raft/-1476006343/snapshot_task/1586855177260_8003556003782527390.task differ
diff --git a/cluster/raft/-1476006343/snapshot_task/1586855177261_9179839299472003393.task b/cluster/raft/-1476006343/snapshot_task/1586855177261_9179839299472003393.task
new file mode 100644
index 0000000..37b0d2e
Binary files /dev/null and b/cluster/raft/-1476006343/snapshot_task/1586855177261_9179839299472003393.task differ
diff --git a/cluster/raft/-1476883667/snapshot_task/1586854300477_-8093255050355868222.task b/cluster/raft/-1476883667/snapshot_task/1586854300477_-8093255050355868222.task
new file mode 100644
index 0000000..96f8dd3
Binary files /dev/null and b/cluster/raft/-1476883667/snapshot_task/1586854300477_-8093255050355868222.task differ
diff --git a/cluster/raft/-1476883667/snapshot_task/1586854300477_201554106005965871.task b/cluster/raft/-1476883667/snapshot_task/1586854300477_201554106005965871.task
new file mode 100644
index 0000000..f1eb2ae
Binary files /dev/null and b/cluster/raft/-1476883667/snapshot_task/1586854300477_201554106005965871.task differ
diff --git a/cluster/raft/-1476883667/snapshot_task/1586854300478_-43686069112552721.task b/cluster/raft/-1476883667/snapshot_task/1586854300478_-43686069112552721.task
new file mode 100644
index 0000000..fd6489f
Binary files /dev/null and b/cluster/raft/-1476883667/snapshot_task/1586854300478_-43686069112552721.task differ
diff --git a/cluster/raft/-1476883667/snapshot_task/1586854300478_1901936060513469601.task b/cluster/raft/-1476883667/snapshot_task/1586854300478_1901936060513469601.task
new file mode 100644
index 0000000..f0f6fac
Binary files /dev/null and b/cluster/raft/-1476883667/snapshot_task/1586854300478_1901936060513469601.task differ
diff --git a/cluster/raft/-1476883667/snapshot_task/1586854300478_2644890865304418287.task b/cluster/raft/-1476883667/snapshot_task/1586854300478_2644890865304418287.task
new file mode 100644
index 0000000..37b0d2e
Binary files /dev/null and b/cluster/raft/-1476883667/snapshot_task/1586854300478_2644890865304418287.task differ
diff --git a/cluster/raft/-1476883667/snapshot_task/1586854300478_7311279011058754427.task b/cluster/raft/-1476883667/snapshot_task/1586854300478_7311279011058754427.task
new file mode 100644
index 0000000..dbfa65f
Binary files /dev/null and b/cluster/raft/-1476883667/snapshot_task/1586854300478_7311279011058754427.task differ
diff --git a/cluster/raft/-1476883667/snapshot_task/1586854300478_9149129399465718640.task b/cluster/raft/-1476883667/snapshot_task/1586854300478_9149129399465718640.task
new file mode 100644
index 0000000..ce8189c
Binary files /dev/null and b/cluster/raft/-1476883667/snapshot_task/1586854300478_9149129399465718640.task differ
diff --git a/cluster/raft/-1476883667/snapshot_task/1586854300478_9199364059689691240.task b/cluster/raft/-1476883667/snapshot_task/1586854300478_9199364059689691240.task
new file mode 100644
index 0000000..3448e26
Binary files /dev/null and b/cluster/raft/-1476883667/snapshot_task/1586854300478_9199364059689691240.task differ
diff --git a/cluster/raft/-1478769747/snapshot_task/1586852414399_-2392883929377559247.task b/cluster/raft/-1478769747/snapshot_task/1586852414399_-2392883929377559247.task
new file mode 100644
index 0000000..3448e26
Binary files /dev/null and b/cluster/raft/-1478769747/snapshot_task/1586852414399_-2392883929377559247.task differ
diff --git a/cluster/raft/-1478769747/snapshot_task/1586852414399_-4735856890665263801.task b/cluster/raft/-1478769747/snapshot_task/1586852414399_-4735856890665263801.task
new file mode 100644
index 0000000..ce8189c
Binary files /dev/null and b/cluster/raft/-1478769747/snapshot_task/1586852414399_-4735856890665263801.task differ
diff --git a/cluster/raft/-1478769747/snapshot_task/1586852414399_-7517962571549373806.task b/cluster/raft/-1478769747/snapshot_task/1586852414399_-7517962571549373806.task
new file mode 100644
index 0000000..f0f6fac
Binary files /dev/null and b/cluster/raft/-1478769747/snapshot_task/1586852414399_-7517962571549373806.task differ
diff --git a/cluster/raft/-1478769747/snapshot_task/1586852414399_4931321917636572968.task b/cluster/raft/-1478769747/snapshot_task/1586852414399_4931321917636572968.task
new file mode 100644
index 0000000..167746b
Binary files /dev/null and b/cluster/raft/-1478769747/snapshot_task/1586852414399_4931321917636572968.task differ
diff --git a/cluster/raft/-1478769747/snapshot_task/1586852414399_7682065158849184796.task b/cluster/raft/-1478769747/snapshot_task/1586852414399_7682065158849184796.task
new file mode 100644
index 0000000..f1eb2ae
Binary files /dev/null and b/cluster/raft/-1478769747/snapshot_task/1586852414399_7682065158849184796.task differ
diff --git a/cluster/raft/-1478769747/snapshot_task/1586852414399_931552093250355745.task b/cluster/raft/-1478769747/snapshot_task/1586852414399_931552093250355745.task
new file mode 100644
index 0000000..fd6489f
Binary files /dev/null and b/cluster/raft/-1478769747/snapshot_task/1586852414399_931552093250355745.task differ
diff --git a/cluster/raft/-1478769747/snapshot_task/1586852414400_-4947101348307211669.task b/cluster/raft/-1478769747/snapshot_task/1586852414400_-4947101348307211669.task
new file mode 100644
index 0000000..dbfa65f
Binary files /dev/null and b/cluster/raft/-1478769747/snapshot_task/1586852414400_-4947101348307211669.task differ
diff --git a/cluster/raft/-1478769747/snapshot_task/1586852414400_-9120641957196649928.task b/cluster/raft/-1478769747/snapshot_task/1586852414400_-9120641957196649928.task
new file mode 100644
index 0000000..37b0d2e
Binary files /dev/null and b/cluster/raft/-1478769747/snapshot_task/1586852414400_-9120641957196649928.task differ
diff --git a/cluster/raft/-1479768285/snapshot_task/1586851415860_2516562531359801579.task b/cluster/raft/-1479768285/snapshot_task/1586851415860_2516562531359801579.task
new file mode 100644
index 0000000..1296d8c
Binary files /dev/null and b/cluster/raft/-1479768285/snapshot_task/1586851415860_2516562531359801579.task differ
diff --git a/cluster/raft/-1479768285/snapshot_task/1586851415861_-7472402451283907695.task b/cluster/raft/-1479768285/snapshot_task/1586851415861_-7472402451283907695.task
new file mode 100644
index 0000000..fd6489f
Binary files /dev/null and b/cluster/raft/-1479768285/snapshot_task/1586851415861_-7472402451283907695.task differ
diff --git a/cluster/raft/-1479768285/snapshot_task/1586851415861_4354020534664290175.task b/cluster/raft/-1479768285/snapshot_task/1586851415861_4354020534664290175.task
new file mode 100644
index 0000000..f1eb2ae
Binary files /dev/null and b/cluster/raft/-1479768285/snapshot_task/1586851415861_4354020534664290175.task differ
diff --git a/cluster/raft/-1479768285/snapshot_task/1586851415861_4390161213522359034.task b/cluster/raft/-1479768285/snapshot_task/1586851415861_4390161213522359034.task
new file mode 100644
index 0000000..3448e26
Binary files /dev/null and b/cluster/raft/-1479768285/snapshot_task/1586851415861_4390161213522359034.task differ
diff --git a/cluster/raft/-1479768285/snapshot_task/1586851415861_8971648548118503590.task b/cluster/raft/-1479768285/snapshot_task/1586851415861_8971648548118503590.task
new file mode 100644
index 0000000..f0f6fac
Binary files /dev/null and b/cluster/raft/-1479768285/snapshot_task/1586851415861_8971648548118503590.task differ
diff --git a/cluster/raft/-1479768285/snapshot_task/1586851415862_-8859101459589305518.task b/cluster/raft/-1479768285/snapshot_task/1586851415862_-8859101459589305518.task
new file mode 100644
index 0000000..37b0d2e
Binary files /dev/null and b/cluster/raft/-1479768285/snapshot_task/1586851415862_-8859101459589305518.task differ
diff --git a/cluster/raft/-1479768285/snapshot_task/1586851415862_8160495926266130107.task b/cluster/raft/-1479768285/snapshot_task/1586851415862_8160495926266130107.task
new file mode 100644
index 0000000..dbfa65f
Binary files /dev/null and b/cluster/raft/-1479768285/snapshot_task/1586851415862_8160495926266130107.task differ
diff --git a/cluster/raft/-1479768285/snapshot_task/1586851415864_5383095389576991736.task b/cluster/raft/-1479768285/snapshot_task/1586851415864_5383095389576991736.task
new file mode 100644
index 0000000..ce8189c
Binary files /dev/null and b/cluster/raft/-1479768285/snapshot_task/1586851415864_5383095389576991736.task differ
diff --git a/cluster/raft/-1495197964/snapshot_task/1586835986280_-3320494564920408745.task b/cluster/raft/-1495197964/snapshot_task/1586835986280_-3320494564920408745.task
new file mode 100644
index 0000000..f1eb2ae
Binary files /dev/null and b/cluster/raft/-1495197964/snapshot_task/1586835986280_-3320494564920408745.task differ
diff --git a/cluster/raft/-1495197964/snapshot_task/1586835986280_-7489914226286127524.task b/cluster/raft/-1495197964/snapshot_task/1586835986280_-7489914226286127524.task
new file mode 100644
index 0000000..ac4d0ec
Binary files /dev/null and b/cluster/raft/-1495197964/snapshot_task/1586835986280_-7489914226286127524.task differ
diff --git a/cluster/raft/-1495197964/snapshot_task/1586835986281_-4671456328859670553.task b/cluster/raft/-1495197964/snapshot_task/1586835986281_-4671456328859670553.task
new file mode 100644
index 0000000..ce8189c
Binary files /dev/null and b/cluster/raft/-1495197964/snapshot_task/1586835986281_-4671456328859670553.task differ
diff --git a/cluster/raft/-1495197964/snapshot_task/1586835986281_-656359249422795972.task b/cluster/raft/-1495197964/snapshot_task/1586835986281_-656359249422795972.task
new file mode 100644
index 0000000..3448e26
Binary files /dev/null and b/cluster/raft/-1495197964/snapshot_task/1586835986281_-656359249422795972.task differ
diff --git a/cluster/raft/-1495197964/snapshot_task/1586835986281_-948823018901582853.task b/cluster/raft/-1495197964/snapshot_task/1586835986281_-948823018901582853.task
new file mode 100644
index 0000000..fd6489f
Binary files /dev/null and b/cluster/raft/-1495197964/snapshot_task/1586835986281_-948823018901582853.task differ
diff --git a/cluster/raft/-1495197964/snapshot_task/1586835986281_4470132570545107636.task b/cluster/raft/-1495197964/snapshot_task/1586835986281_4470132570545107636.task
new file mode 100644
index 0000000..dbfa65f
Binary files /dev/null and b/cluster/raft/-1495197964/snapshot_task/1586835986281_4470132570545107636.task differ
diff --git a/cluster/raft/-1495197964/snapshot_task/1586835986281_8171546385281388961.task b/cluster/raft/-1495197964/snapshot_task/1586835986281_8171546385281388961.task
new file mode 100644
index 0000000..f0f6fac
Binary files /dev/null and b/cluster/raft/-1495197964/snapshot_task/1586835986281_8171546385281388961.task differ
diff --git a/cluster/raft/-1495197964/snapshot_task/1586835986281_8967413450799695062.task b/cluster/raft/-1495197964/snapshot_task/1586835986281_8967413450799695062.task
new file mode 100644
index 0000000..37b0d2e
Binary files /dev/null and b/cluster/raft/-1495197964/snapshot_task/1586835986281_8967413450799695062.task differ
diff --git a/cluster/raft/20/snapshot_task/1586835978782_-7495399798836496627.task b/cluster/raft/20/snapshot_task/1586835978782_-7495399798836496627.task
new file mode 100644
index 0000000..4cb70d2
Binary files /dev/null and b/cluster/raft/20/snapshot_task/1586835978782_-7495399798836496627.task differ
diff --git a/cluster/raft/20/snapshot_task/1586851408237_2270566744886558294.task b/cluster/raft/20/snapshot_task/1586851408237_2270566744886558294.task
new file mode 100644
index 0000000..4cb70d2
Binary files /dev/null and b/cluster/raft/20/snapshot_task/1586851408237_2270566744886558294.task differ
diff --git a/cluster/raft/20/snapshot_task/1586852406451_7103234148675602661.task b/cluster/raft/20/snapshot_task/1586852406451_7103234148675602661.task
new file mode 100644
index 0000000..4cb70d2
Binary files /dev/null and b/cluster/raft/20/snapshot_task/1586852406451_7103234148675602661.task differ
diff --git a/cluster/raft/20/snapshot_task/1586854292184_1418233161977182504.task b/cluster/raft/20/snapshot_task/1586854292184_1418233161977182504.task
new file mode 100644
index 0000000..4cb70d2
Binary files /dev/null and b/cluster/raft/20/snapshot_task/1586854292184_1418233161977182504.task differ
diff --git a/cluster/raft/20/snapshot_task/1586855169548_4741845169826760313.task b/cluster/raft/20/snapshot_task/1586855169548_4741845169826760313.task
new file mode 100644
index 0000000..4cb70d2
Binary files /dev/null and b/cluster/raft/20/snapshot_task/1586855169548_4741845169826760313.task differ
diff --git a/cluster/raft/30/snapshot_task/1586835978776_-5562857656189187752.task b/cluster/raft/30/snapshot_task/1586835978776_-5562857656189187752.task
new file mode 100644
index 0000000..a07ea00
Binary files /dev/null and b/cluster/raft/30/snapshot_task/1586835978776_-5562857656189187752.task differ
diff --git a/cluster/raft/30/snapshot_task/1586851408219_-8205731266190660230.task b/cluster/raft/30/snapshot_task/1586851408219_-8205731266190660230.task
new file mode 100644
index 0000000..a07ea00
Binary files /dev/null and b/cluster/raft/30/snapshot_task/1586851408219_-8205731266190660230.task differ
diff --git a/cluster/raft/30/snapshot_task/1586852406433_-5244520012648944557.task b/cluster/raft/30/snapshot_task/1586852406433_-5244520012648944557.task
new file mode 100644
index 0000000..a07ea00
Binary files /dev/null and b/cluster/raft/30/snapshot_task/1586852406433_-5244520012648944557.task differ
diff --git a/cluster/raft/30/snapshot_task/1586854292159_-3146378836071162165.task b/cluster/raft/30/snapshot_task/1586854292159_-3146378836071162165.task
new file mode 100644
index 0000000..a07ea00
Binary files /dev/null and b/cluster/raft/30/snapshot_task/1586854292159_-3146378836071162165.task differ
diff --git a/cluster/raft/30/snapshot_task/1586855169540_-6658772559513582825.task b/cluster/raft/30/snapshot_task/1586855169540_-6658772559513582825.task
new file mode 100644
index 0000000..a07ea00
Binary files /dev/null and b/cluster/raft/30/snapshot_task/1586855169540_-6658772559513582825.task differ
diff --git a/cluster/raft/40/snapshot_task/1586835978772_-6875543191180596302.task b/cluster/raft/40/snapshot_task/1586835978772_-6875543191180596302.task
new file mode 100644
index 0000000..5a0aedd
Binary files /dev/null and b/cluster/raft/40/snapshot_task/1586835978772_-6875543191180596302.task differ
diff --git a/cluster/raft/40/snapshot_task/1586851408199_3962424538201264612.task b/cluster/raft/40/snapshot_task/1586851408199_3962424538201264612.task
new file mode 100644
index 0000000..5a0aedd
Binary files /dev/null and b/cluster/raft/40/snapshot_task/1586851408199_3962424538201264612.task differ
diff --git a/cluster/raft/40/snapshot_task/1586852406405_7112201249736427437.task b/cluster/raft/40/snapshot_task/1586852406405_7112201249736427437.task
new file mode 100644
index 0000000..5a0aedd
Binary files /dev/null and b/cluster/raft/40/snapshot_task/1586852406405_7112201249736427437.task differ
diff --git a/cluster/raft/40/snapshot_task/1586854292132_891311129989297387.task b/cluster/raft/40/snapshot_task/1586854292132_891311129989297387.task
new file mode 100644
index 0000000..5a0aedd
Binary files /dev/null and b/cluster/raft/40/snapshot_task/1586854292132_891311129989297387.task differ
diff --git a/cluster/raft/40/snapshot_task/1586855169531_-3309812358258853569.task b/cluster/raft/40/snapshot_task/1586855169531_-3309812358258853569.task
new file mode 100644
index 0000000..5a0aedd
Binary files /dev/null and b/cluster/raft/40/snapshot_task/1586855169531_-3309812358258853569.task differ
diff --git a/cluster/raft/50/snapshot_task/1586835978768_-3009429696264373350.task b/cluster/raft/50/snapshot_task/1586835978768_-3009429696264373350.task
new file mode 100644
index 0000000..23246b7
Binary files /dev/null and b/cluster/raft/50/snapshot_task/1586835978768_-3009429696264373350.task differ
diff --git a/cluster/raft/50/snapshot_task/1586851408185_-1091732597092706166.task b/cluster/raft/50/snapshot_task/1586851408185_-1091732597092706166.task
new file mode 100644
index 0000000..23246b7
Binary files /dev/null and b/cluster/raft/50/snapshot_task/1586851408185_-1091732597092706166.task differ
diff --git a/cluster/raft/50/snapshot_task/1586852406357_6777186873951866641.task b/cluster/raft/50/snapshot_task/1586852406357_6777186873951866641.task
new file mode 100644
index 0000000..23246b7
Binary files /dev/null and b/cluster/raft/50/snapshot_task/1586852406357_6777186873951866641.task differ
diff --git a/cluster/raft/50/snapshot_task/1586854292100_-8133264438068695900.task b/cluster/raft/50/snapshot_task/1586854292100_-8133264438068695900.task
new file mode 100644
index 0000000..23246b7
Binary files /dev/null and b/cluster/raft/50/snapshot_task/1586854292100_-8133264438068695900.task differ
diff --git a/cluster/raft/50/snapshot_task/1586855169521_1095023885222012287.task b/cluster/raft/50/snapshot_task/1586855169521_1095023885222012287.task
new file mode 100644
index 0000000..23246b7
Binary files /dev/null and b/cluster/raft/50/snapshot_task/1586855169521_1095023885222012287.task differ
diff --git a/cluster/raft/60/snapshot_task/1586835978762_-5642968854276382260.task b/cluster/raft/60/snapshot_task/1586835978762_-5642968854276382260.task
new file mode 100644
index 0000000..f9e508f
Binary files /dev/null and b/cluster/raft/60/snapshot_task/1586835978762_-5642968854276382260.task differ
diff --git a/cluster/raft/60/snapshot_task/1586851408164_-4078765804890805468.task b/cluster/raft/60/snapshot_task/1586851408164_-4078765804890805468.task
new file mode 100644
index 0000000..f9e508f
Binary files /dev/null and b/cluster/raft/60/snapshot_task/1586851408164_-4078765804890805468.task differ
diff --git a/cluster/raft/60/snapshot_task/1586852406337_-7811845390832975705.task b/cluster/raft/60/snapshot_task/1586852406337_-7811845390832975705.task
new file mode 100644
index 0000000..f9e508f
Binary files /dev/null and b/cluster/raft/60/snapshot_task/1586852406337_-7811845390832975705.task differ
diff --git a/cluster/raft/60/snapshot_task/1586854292063_4916534122808476444.task b/cluster/raft/60/snapshot_task/1586854292063_4916534122808476444.task
new file mode 100644
index 0000000..f9e508f
Binary files /dev/null and b/cluster/raft/60/snapshot_task/1586854292063_4916534122808476444.task differ
diff --git a/cluster/raft/60/snapshot_task/1586855169513_-2615850524724134501.task b/cluster/raft/60/snapshot_task/1586855169513_-2615850524724134501.task
new file mode 100644
index 0000000..f9e508f
Binary files /dev/null and b/cluster/raft/60/snapshot_task/1586855169513_-2615850524724134501.task differ
diff --git a/cluster/raft/70/snapshot_task/1586835978756_4016266948906320695.task b/cluster/raft/70/snapshot_task/1586835978756_4016266948906320695.task
new file mode 100644
index 0000000..034da8e
Binary files /dev/null and b/cluster/raft/70/snapshot_task/1586835978756_4016266948906320695.task differ
diff --git a/cluster/raft/70/snapshot_task/1586835982845_8830405749105112166.task b/cluster/raft/70/snapshot_task/1586835982845_8830405749105112166.task
new file mode 100644
index 0000000..034da8e
Binary files /dev/null and b/cluster/raft/70/snapshot_task/1586835982845_8830405749105112166.task differ
diff --git a/cluster/raft/70/snapshot_task/1586851408139_2877624854787377919.task b/cluster/raft/70/snapshot_task/1586851408139_2877624854787377919.task
new file mode 100644
index 0000000..034da8e
Binary files /dev/null and b/cluster/raft/70/snapshot_task/1586851408139_2877624854787377919.task differ
diff --git a/cluster/raft/70/snapshot_task/1586851412411_-279210180685768799.task b/cluster/raft/70/snapshot_task/1586851412411_-279210180685768799.task
new file mode 100644
index 0000000..034da8e
Binary files /dev/null and b/cluster/raft/70/snapshot_task/1586851412411_-279210180685768799.task differ
diff --git a/cluster/raft/70/snapshot_task/1586852406271_8214115572938737153.task b/cluster/raft/70/snapshot_task/1586852406271_8214115572938737153.task
new file mode 100644
index 0000000..034da8e
Binary files /dev/null and b/cluster/raft/70/snapshot_task/1586852406271_8214115572938737153.task differ
diff --git a/cluster/raft/70/snapshot_task/1586852410896_-5408637203974222295.task b/cluster/raft/70/snapshot_task/1586852410896_-5408637203974222295.task
new file mode 100644
index 0000000..034da8e
Binary files /dev/null and b/cluster/raft/70/snapshot_task/1586852410896_-5408637203974222295.task differ
diff --git a/cluster/raft/70/snapshot_task/1586854291944_6371281773062749942.task b/cluster/raft/70/snapshot_task/1586854291944_6371281773062749942.task
new file mode 100644
index 0000000..034da8e
Binary files /dev/null and b/cluster/raft/70/snapshot_task/1586854291944_6371281773062749942.task differ
diff --git a/cluster/raft/70/snapshot_task/1586854296839_-5691420980712849780.task b/cluster/raft/70/snapshot_task/1586854296839_-5691420980712849780.task
new file mode 100644
index 0000000..034da8e
Binary files /dev/null and b/cluster/raft/70/snapshot_task/1586854296839_-5691420980712849780.task differ
diff --git a/cluster/raft/70/snapshot_task/1586855169495_-6591674811258001183.task b/cluster/raft/70/snapshot_task/1586855169495_-6591674811258001183.task
new file mode 100644
index 0000000..034da8e
Binary files /dev/null and b/cluster/raft/70/snapshot_task/1586855169495_-6591674811258001183.task differ
diff --git a/cluster/raft/70/snapshot_task/1586855173927_-1803686077397573050.task b/cluster/raft/70/snapshot_task/1586855173927_-1803686077397573050.task
new file mode 100644
index 0000000..034da8e
Binary files /dev/null and b/cluster/raft/70/snapshot_task/1586855173927_-1803686077397573050.task differ
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/log/applier/BaseApplier.java b/cluster/src/main/java/org/apache/iotdb/cluster/log/applier/BaseApplier.java
index b463799..4f00585 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/log/applier/BaseApplier.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/log/applier/BaseApplier.java
@@ -44,7 +44,7 @@ abstract class BaseApplier implements LogApplier {
 
   private static final Logger logger = LoggerFactory.getLogger(BaseApplier.class);
 
-  private MetaGroupMember metaGroupMember;
+  MetaGroupMember metaGroupMember;
   private PlanExecutor queryExecutor;
 
   BaseApplier(MetaGroupMember metaGroupMember) {
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/log/applier/DataLogApplier.java b/cluster/src/main/java/org/apache/iotdb/cluster/log/applier/DataLogApplier.java
index 7b627ab..6f45671 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/log/applier/DataLogApplier.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/log/applier/DataLogApplier.java
@@ -19,13 +19,22 @@
 
 package org.apache.iotdb.cluster.log.applier;
 
+import org.apache.iotdb.cluster.config.ClusterConstant;
 import org.apache.iotdb.cluster.log.Log;
 import org.apache.iotdb.cluster.log.logtypes.CloseFileLog;
 import org.apache.iotdb.cluster.log.logtypes.PhysicalPlanLog;
+import org.apache.iotdb.cluster.server.member.DataGroupMember;
 import org.apache.iotdb.cluster.server.member.MetaGroupMember;
+import org.apache.iotdb.cluster.utils.PartitionUtils;
 import org.apache.iotdb.db.engine.StorageEngine;
+import org.apache.iotdb.db.exception.metadata.MetadataException;
 import org.apache.iotdb.db.exception.metadata.StorageGroupNotSetException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
+import org.apache.iotdb.db.metadata.MManager;
+import org.apache.iotdb.db.qp.physical.PhysicalPlan;
+import org.apache.iotdb.db.qp.physical.crud.BatchInsertPlan;
+import org.apache.iotdb.db.qp.physical.crud.InsertPlan;
+import org.apache.iotdb.tsfile.read.filter.operator.In;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -36,14 +45,27 @@ public class DataLogApplier extends BaseApplier {
 
   private static final Logger logger = LoggerFactory.getLogger(DataLogApplier.class);
 
-  public DataLogApplier(MetaGroupMember metaGroupMember) {
+  private DataGroupMember dataGroupMember;
+
+  public DataLogApplier(MetaGroupMember metaGroupMember, DataGroupMember dataGroupMember) {
     super(metaGroupMember);
+    this.dataGroupMember = dataGroupMember;
   }
 
   @Override
   public void apply(Log log) throws QueryProcessException {
     if (log instanceof PhysicalPlanLog) {
-      applyPhysicalPlan(((PhysicalPlanLog) log).getPlan());
+      PhysicalPlanLog physicalPlanLog = (PhysicalPlanLog) log;
+      PhysicalPlan plan = physicalPlanLog.getPlan();
+      if (plan instanceof InsertPlan || plan instanceof BatchInsertPlan) {
+        try {
+          applyInsert(plan);
+        } catch (StorageGroupNotSetException e) {
+          throw new QueryProcessException(e);
+        }
+      } else {
+        applyPhysicalPlan(plan);
+      }
     } else if (log instanceof CloseFileLog) {
       CloseFileLog closeFileLog = ((CloseFileLog) log);
       try {
@@ -60,4 +82,39 @@ public class DataLogApplier extends BaseApplier {
       logger.error("Unsupported log: {}", log);
     }
   }
+
+  private void applyInsert(PhysicalPlan plan)
+      throws StorageGroupNotSetException, QueryProcessException {
+    // check if the corresponding slot is being pulled
+    String sg;
+    long time;
+    try {
+      if (plan instanceof InsertPlan) {
+        InsertPlan insertPlan = (InsertPlan) plan;
+        sg = MManager.getInstance().getStorageGroupName(insertPlan.getDeviceId());
+        time = insertPlan.getTime();
+      } else {
+        BatchInsertPlan batchInsertPlan = (BatchInsertPlan) plan;
+        sg = MManager.getInstance().getStorageGroupName(batchInsertPlan.getDeviceId());
+        time = batchInsertPlan.getMinTime();
+      }
+    } catch (StorageGroupNotSetException e) {
+      // the sg may not exist because the node does not catch up with the leader, retry after
+      // synchronization
+      metaGroupMember.syncLeader();
+      if (plan instanceof InsertPlan) {
+        InsertPlan insertPlan = (InsertPlan) plan;
+        sg = MManager.getInstance().getStorageGroupName(insertPlan.getDeviceId());
+        time = insertPlan.getTime();
+      } else {
+        BatchInsertPlan batchInsertPlan = (BatchInsertPlan) plan;
+        sg = MManager.getInstance().getStorageGroupName(batchInsertPlan.getDeviceId());
+        time = batchInsertPlan.getMinTime();
+      }
+    }
+    int slotId = PartitionUtils.calculateStorageGroupSlotByTime(sg, time, ClusterConstant.SLOT_NUM);
+    // the slot may not be writable because it is pulling file versions, wait until it is done
+    dataGroupMember.getSlotManager().waitSlotForWrite(slotId);
+    applyPhysicalPlan(plan);
+  }
 }
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/log/snapshot/RemoteFileSnapshot.java b/cluster/src/main/java/org/apache/iotdb/cluster/log/snapshot/RemoteFileSnapshot.java
deleted file mode 100644
index 1a9ca53..0000000
--- a/cluster/src/main/java/org/apache/iotdb/cluster/log/snapshot/RemoteFileSnapshot.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.cluster.log.snapshot;
-
-import java.nio.ByteBuffer;
-import java.util.Map;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
-import org.apache.iotdb.cluster.log.Snapshot;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * RemoteFileSnapshot is a place holder that indicates the slot has unpulled data in the remote
- * node.
- */
-public class RemoteFileSnapshot extends Snapshot implements RemoteSnapshot {
-
-  private static final Logger logger = LoggerFactory.getLogger(RemoteFileSnapshot.class);
-  private static final ByteBuffer EMPTY_SNAPSHOT_BYTES = new FileSnapshot().serialize();
-  private Future<Map<Integer, FileSnapshot>> pullSnapshotTask;
-  private Map<Integer, FileSnapshot> remoteSnapshots;
-  private int slot;
-
-  public RemoteFileSnapshot(Future<Map<Integer, FileSnapshot>> pullSnapshotTask, int slot) {
-    this.pullSnapshotTask = pullSnapshotTask;
-    this.slot = slot;
-  }
-
-  @Override
-  public ByteBuffer serialize() {
-    if (remoteSnapshots == null) {
-      getRemoteSnapshot();
-    }
-    FileSnapshot fileSnapshot = remoteSnapshots.get(slot);
-    if (fileSnapshot != null) {
-      return fileSnapshot.serialize();
-    } else {
-      return EMPTY_SNAPSHOT_BYTES;
-    }
-  }
-
-  @Override
-  public void deserialize(ByteBuffer buffer) {
-    // remote file snapshot is not deserialized
-  }
-
-  @Override
-  public void getRemoteSnapshot() {
-    try {
-       remoteSnapshots = pullSnapshotTask.get();
-    } catch (InterruptedException | ExecutionException e) {
-      logger.error("Cannot pull remote file snapshot:", e);
-    }
-  }
-}
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/log/snapshot/RemoteSnapshot.java b/cluster/src/main/java/org/apache/iotdb/cluster/log/snapshot/RemoteSnapshot.java
deleted file mode 100644
index 141a597..0000000
--- a/cluster/src/main/java/org/apache/iotdb/cluster/log/snapshot/RemoteSnapshot.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.cluster.log.snapshot;
-
-public interface RemoteSnapshot {
-
-  /**
-   * Wait until the remote snapshot is ready.
-   */
-  void getRemoteSnapshot();
-}
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
index 158361f..a51f2d0 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
@@ -48,8 +48,8 @@ import org.apache.iotdb.cluster.exception.LeaderUnknownException;
 import org.apache.iotdb.cluster.exception.PullFileException;
 import org.apache.iotdb.cluster.exception.ReaderNotFoundException;
 import org.apache.iotdb.cluster.exception.SnapshotApplicationException;
-import org.apache.iotdb.cluster.log.LogApplier;
 import org.apache.iotdb.cluster.log.Snapshot;
+import org.apache.iotdb.cluster.log.applier.DataLogApplier;
 import org.apache.iotdb.cluster.log.logtypes.CloseFileLog;
 import org.apache.iotdb.cluster.log.manage.FilePartitionedSnapshotLogManager;
 import org.apache.iotdb.cluster.log.manage.PartitionedSnapshotLogManager;
@@ -165,7 +165,7 @@ public class DataGroupMember extends RaftMember implements TSDataService.AsyncIf
    * "slotManager" tracks the status of slots during data transfers so that we can know whether
    * the slot has non-pulled data.
    */
-  private SlotManager slotManager;
+  protected SlotManager slotManager;
 
   @TestOnly
   public DataGroupMember() {
@@ -173,16 +173,17 @@ public class DataGroupMember extends RaftMember implements TSDataService.AsyncIf
   }
 
   DataGroupMember(TProtocolFactory factory, PartitionGroup nodes, Node thisNode,
-      PartitionedSnapshotLogManager logManager, MetaGroupMember metaGroupMember) {
+       MetaGroupMember metaGroupMember) {
     super("Data(" + nodes.getHeader().getIp() + ":" + nodes.getHeader().getMetaPort() + ")",
         new ClientPool(new DataClient.Factory(factory)));
     this.thisNode = thisNode;
-    this.logManager = logManager;
-    super.logManager = logManager;
     this.metaGroupMember = metaGroupMember;
     allNodes = nodes;
     setQueryManager(new ClusterQueryManager());
     slotManager = new SlotManager(ClusterConstant.SLOT_NUM);
+    this.logManager = new FilePartitionedSnapshotLogManager(new DataLogApplier(metaGroupMember,
+        this), metaGroupMember.getPartitionTable(), allNodes.get(0));
+    super.logManager = logManager;
   }
 
   /**
@@ -239,18 +240,14 @@ public class DataGroupMember extends RaftMember implements TSDataService.AsyncIf
   public static class Factory {
     private TProtocolFactory protocolFactory;
     private MetaGroupMember metaGroupMember;
-    private LogApplier applier;
 
-    Factory(TProtocolFactory protocolFactory, MetaGroupMember metaGroupMember, LogApplier applier) {
+    Factory(TProtocolFactory protocolFactory, MetaGroupMember metaGroupMember) {
       this.protocolFactory = protocolFactory;
       this.metaGroupMember = metaGroupMember;
-      this.applier = applier;
     }
 
     public DataGroupMember create(PartitionGroup partitionGroup, Node thisNode) {
-      return new DataGroupMember(protocolFactory, partitionGroup, thisNode,
-          new FilePartitionedSnapshotLogManager(applier, metaGroupMember.getPartitionTable(),
-              partitionGroup.getHeader()), metaGroupMember);
+      return new DataGroupMember(protocolFactory, partitionGroup, thisNode, metaGroupMember);
     }
   }
 
@@ -378,7 +375,7 @@ public class DataGroupMember extends RaftMember implements TSDataService.AsyncIf
     logger.debug("{}: applying snapshot {}", name, snapshot);
     if (snapshot instanceof FileSnapshot) {
       try {
-        applyFileSnapshot((FileSnapshot) snapshot);
+        applyFileSnapshot((FileSnapshot) snapshot, slot);
       } catch (PullFileException e) {
         throw new SnapshotApplicationException(e);
       }
@@ -393,8 +390,9 @@ public class DataGroupMember extends RaftMember implements TSDataService.AsyncIf
    * "RemoteTsFileResources" will be loaded into the IoTDB instance if they do not totally
    * overlap with existing files.
    * @param snapshot
+   * @param slot
    */
-  private void applyFileSnapshot(FileSnapshot snapshot)
+  private void applyFileSnapshot(FileSnapshot snapshot, int slot)
       throws PullFileException, SnapshotApplicationException {
     synchronized (logManager) {
       // load metadata in the snapshot
@@ -418,12 +416,20 @@ public class DataGroupMember extends RaftMember implements TSDataService.AsyncIf
           throw new SnapshotApplicationException(e);
         }
       }
+      SlotStatus status = slotManager.getStatus(slot);
+      if (status == SlotStatus.PULLING) {
+        // as the partition versions are set, writes can proceed without generating incorrect
+        // versions
+        slotManager.setToPullingWritable(slot);
+      }
       // pull file
       for (RemoteTsFileResource resource : remoteTsFileResources) {
         if (!isFileAlreadyPulled(resource)) {
           loadRemoteFile(resource);
         }
       }
+      // all files are loaded, the slot can be queried without accessing the previous holder
+      slotManager.setToNull(slot);
     }
   }
 
@@ -1502,5 +1508,9 @@ public class DataGroupMember extends RaftMember implements TSDataService.AsyncIf
       resultHandler.onError(e);
     }
   }
+
+  public SlotManager getSlotManager() {
+    return slotManager;
+  }
 }
 
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
index 530adfd..f160c64 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
@@ -221,8 +221,7 @@ public class MetaGroupMember extends RaftMember implements TSMetaService.AsyncIf
     // load the identifier from the disk or generate a new one
     loadIdentifier();
 
-    LogApplier dataLogApplier = new DataLogApplier(this);
-    Factory dataMemberFactory = new Factory(factory, this, dataLogApplier);
+    Factory dataMemberFactory = new Factory(factory, this);
     dataClusterServer = new DataClusterServer(thisNode, dataMemberFactory);
     clientServer = new ClientServer(this);
     startUpStatus = getStartUpStatus();
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/common/TestDataGroupMember.java b/cluster/src/test/java/org/apache/iotdb/cluster/common/TestDataGroupMember.java
index f3c0874..ecdf8ae 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/common/TestDataGroupMember.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/common/TestDataGroupMember.java
@@ -20,6 +20,8 @@
 package org.apache.iotdb.cluster.common;
 
 import java.util.List;
+import org.apache.iotdb.cluster.config.ClusterConstant;
+import org.apache.iotdb.cluster.partition.SlotManager;
 import org.apache.iotdb.cluster.query.manage.ClusterQueryManager;
 import org.apache.iotdb.cluster.rpc.thrift.Node;
 import org.apache.iotdb.cluster.server.member.DataGroupMember;
@@ -29,12 +31,14 @@ public class TestDataGroupMember extends DataGroupMember {
   public TestDataGroupMember() {
     super();
     setQueryManager(new ClusterQueryManager());
+    this.slotManager = new SlotManager(ClusterConstant.SLOT_NUM);
   }
 
   public TestDataGroupMember(Node thisNode, List<Node> allNodes) {
     super();
     this.thisNode = thisNode;
     this.allNodes = allNodes;
+    this.slotManager = new SlotManager(ClusterConstant.SLOT_NUM);
     setQueryManager(new ClusterQueryManager());
   }
 }
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/common/TestRemoteFileSnapshot.java b/cluster/src/test/java/org/apache/iotdb/cluster/common/TestRemoteFileSnapshot.java
deleted file mode 100644
index de3864b..0000000
--- a/cluster/src/test/java/org/apache/iotdb/cluster/common/TestRemoteFileSnapshot.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.cluster.common;
-
-import java.nio.ByteBuffer;
-import java.util.List;
-import java.util.Set;
-import org.apache.iotdb.cluster.RemoteTsFileResource;
-import org.apache.iotdb.cluster.log.snapshot.FileSnapshot;
-import org.apache.iotdb.cluster.log.snapshot.RemoteSnapshot;
-import org.apache.iotdb.db.engine.StorageEngine;
-import org.apache.iotdb.db.exception.StorageEngineException;
-import org.apache.iotdb.db.exception.WriteProcessException;
-import org.apache.iotdb.db.exception.metadata.StorageGroupNotSetException;
-import org.apache.iotdb.db.qp.physical.crud.InsertPlan;
-import org.apache.iotdb.db.utils.SchemaUtils;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class TestRemoteFileSnapshot extends FileSnapshot implements RemoteSnapshot {
-
-  private static final Logger logger = LoggerFactory.getLogger(TestRemoteFileSnapshot.class);
-
-  private List<RemoteTsFileResource> remoteDataFiles;
-  private Set<MeasurementSchema> remoteMeasurementSchemas;
-
-  public TestRemoteFileSnapshot(List<RemoteTsFileResource> dataFiles,
-      Set<MeasurementSchema> measurementSchemas) {
-    remoteDataFiles = dataFiles;
-    remoteMeasurementSchemas = measurementSchemas;
-  }
-
-  @Override
-  public void getRemoteSnapshot() {
-    for (MeasurementSchema remoteMeasurementSchema : remoteMeasurementSchemas) {
-      SchemaUtils.registerTimeseries(remoteMeasurementSchema);
-    }
-    int startTime = 12345;
-    for (RemoteTsFileResource tsFileResource : remoteDataFiles) {
-      // fake a file for each resource
-      String[] splits = tsFileResource.getFile().getPath().split("\\\\");
-      String storageGroup = splits[splits.length - 2];
-      InsertPlan insertPlan = new InsertPlan();
-      insertPlan.setDeviceId(storageGroup);
-      insertPlan.setTime(startTime++);
-      insertPlan.setMeasurements(new String[] {TestUtils.getTestMeasurement(0)});
-      insertPlan.setSchemas(new MeasurementSchema[] {TestUtils.getTestSchema(0, 0)});
-      insertPlan.setValues(new String[] {"0.0"});
-      try {
-        StorageEngine.getInstance().getProcessor(storageGroup).insert(insertPlan);
-        StorageEngine.getInstance().asyncCloseProcessor(storageGroup, true);
-      } catch (StorageEngineException | StorageGroupNotSetException | WriteProcessException e) {
-        logger.error("Cannot fake files in TestRemoteFileSnapshot", e);
-      }
-    }
-  }
-
-  @Override
-  public ByteBuffer serialize() {
-    return null;
-  }
-
-  @Override
-  public void deserialize(ByteBuffer buffer) {
-
-  }
-}
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/log/applier/DataLogApplierTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/log/applier/DataLogApplierTest.java
index 605c707..848c36f 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/log/applier/DataLogApplierTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/log/applier/DataLogApplierTest.java
@@ -30,6 +30,7 @@ import java.util.Collections;
 import java.util.List;
 import junit.framework.TestCase;
 import org.apache.iotdb.cluster.common.IoTDBTest;
+import org.apache.iotdb.cluster.common.TestDataGroupMember;
 import org.apache.iotdb.cluster.common.TestMetaGroupMember;
 import org.apache.iotdb.cluster.common.TestUtils;
 import org.apache.iotdb.cluster.log.LogApplier;
@@ -70,7 +71,9 @@ public class DataLogApplierTest extends IoTDBTest {
     }
   };
 
-  private LogApplier applier = new DataLogApplier(testMetaGroupMember);
+  private TestDataGroupMember testDataGroupMember = new TestDataGroupMember();
+
+  private LogApplier applier = new DataLogApplier(testMetaGroupMember, testDataGroupMember);
 
   @Test
   public void testApplyInsert()
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/log/manage/FilePartitionedSnapshotLogManagerTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/log/manage/FilePartitionedSnapshotLogManagerTest.java
index 44fb48d..6cf69e8 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/log/manage/FilePartitionedSnapshotLogManagerTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/log/manage/FilePartitionedSnapshotLogManagerTest.java
@@ -21,16 +21,10 @@ package org.apache.iotdb.cluster.log.manage;
 
 import static org.junit.Assert.assertEquals;
 
-import java.io.File;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
-import org.apache.iotdb.cluster.RemoteTsFileResource;
 import org.apache.iotdb.cluster.common.IoTDBTest;
 import org.apache.iotdb.cluster.common.TestLogApplier;
-import org.apache.iotdb.cluster.common.TestRemoteFileSnapshot;
 import org.apache.iotdb.cluster.common.TestUtils;
 import org.apache.iotdb.cluster.config.ClusterConstant;
 import org.apache.iotdb.cluster.log.Log;
@@ -42,7 +36,6 @@ import org.apache.iotdb.cluster.utils.PartitionUtils;
 import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.exception.metadata.StorageGroupNotSetException;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
-import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
 import org.junit.Test;
 
 public class FilePartitionedSnapshotLogManagerTest extends IoTDBTest {
@@ -82,35 +75,4 @@ public class FilePartitionedSnapshotLogManagerTest extends IoTDBTest {
       assertEquals(5, fileSnapshot.getDataFiles().size());
     }
   }
-
-  @Test
-  public void testRemoteSnapshots() throws IOException {
-    PartitionTable partitionTable = TestUtils.getPartitionTable(3);
-    LogApplier applier = new TestLogApplier();
-    FilePartitionedSnapshotLogManager manager = new FilePartitionedSnapshotLogManager(applier,
-        partitionTable, TestUtils.getNode(0));
-
-    // fake remote snapshots
-    for (int i = 6; i < 9; i++) {
-      List<RemoteTsFileResource> resources = new ArrayList<>();
-      Set<MeasurementSchema> measurementSchemas = new HashSet<>();
-      for (int j = 0; j < 10; j++) {
-        RemoteTsFileResource resource = new RemoteTsFileResource();
-        resource.setFile(new File(TestUtils.getTestSg(i) + File.separator + "TsFile" + j));
-        resources.add(resource);
-        measurementSchemas.add(TestUtils.getTestSchema(i, j));
-      }
-      manager.setSnapshot(new TestRemoteFileSnapshot(resources, measurementSchemas), i);
-    }
-
-    // remote snapshots will be pulled when a new snapshot is taken
-    manager.takeSnapshot();
-    PartitionedSnapshot snapshot = (PartitionedSnapshot) manager.getSnapshot();
-    for (int i = 6; i < 9; i++) {
-      FileSnapshot fileSnapshot =
-          (FileSnapshot) snapshot.getSnapshot(PartitionUtils.calculateStorageGroupSlotByTime(TestUtils.getTestSg(i), 0, ClusterConstant.SLOT_NUM));
-      assertEquals(10, fileSnapshot.getDataFiles().size());
-      assertEquals(10, fileSnapshot.getTimeseriesSchemas().size());
-    }
-  }
 }
\ No newline at end of file
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/server/member/DataGroupMemberTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/server/member/DataGroupMemberTest.java
index 038ce78..d27e8e3 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/server/member/DataGroupMemberTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/server/member/DataGroupMemberTest.java
@@ -55,7 +55,6 @@ import org.apache.iotdb.cluster.log.applier.DataLogApplier;
 import org.apache.iotdb.cluster.log.manage.PartitionedSnapshotLogManager;
 import org.apache.iotdb.cluster.log.snapshot.FileSnapshot;
 import org.apache.iotdb.cluster.log.snapshot.PartitionedSnapshot;
-import org.apache.iotdb.cluster.log.snapshot.RemoteFileSnapshot;
 import org.apache.iotdb.cluster.partition.NodeRemovalResult;
 import org.apache.iotdb.cluster.partition.PartitionGroup;
 import org.apache.iotdb.cluster.query.RemoteQueryContext;
@@ -99,7 +98,7 @@ import org.apache.iotdb.tsfile.read.filter.basic.Filter;
 import org.apache.iotdb.tsfile.read.filter.operator.AndFilter;
 import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
 import org.apache.thrift.async.AsyncMethodCallback;
-import org.apache.thrift.protocol.TCompactProtocol;
+import org.apache.thrift.protocol.TCompactProtocol.Factory;
 import org.apache.thrift.transport.TTransportException;
 import org.junit.After;
 import org.junit.Before;
@@ -109,7 +108,6 @@ public class DataGroupMemberTest extends MemberTest {
 
   private DataGroupMember dataGroupMember;
   private Map<Integer, FileSnapshot> snapshotMap;
-  private Map<Integer, RemoteFileSnapshot> receivedSnapshots;
   private Set<Integer> pulledSnapshots;
   private boolean hasInitialSnapshots;
   private boolean enableSyncLeader;
@@ -127,7 +125,6 @@ public class DataGroupMemberTest extends MemberTest {
       fileSnapshot.setTimeseriesSchemas(Collections.singleton(TestUtils.getTestSchema(1, i)));
       snapshotMap.put(i, fileSnapshot);
     }
-    receivedSnapshots = new HashMap<>();
     pulledSnapshots = new HashSet<>();
   }
 
@@ -138,7 +135,7 @@ public class DataGroupMemberTest extends MemberTest {
   }
 
   private PartitionedSnapshotLogManager getLogManager(PartitionGroup partitionGroup) {
-    return new TestPartitionedLogManager(new DataLogApplier(testMetaMember),
+    return new TestPartitionedLogManager(new DataLogApplier(testMetaMember, dataGroupMember),
         testMetaMember.getPartitionTable(), partitionGroup.getHeader(), FileSnapshot::new) {
       @Override
       public Snapshot getSnapshot() {
@@ -150,11 +147,6 @@ public class DataGroupMemberTest extends MemberTest {
         }
         return snapshot;
       }
-
-      @Override
-      public void setSnapshot(Snapshot snapshot, int slot) {
-        receivedSnapshots.put(slot, (RemoteFileSnapshot) snapshot);
-      }
     };
   }
 
@@ -164,7 +156,7 @@ public class DataGroupMemberTest extends MemberTest {
   }
 
   private DataGroupMember getDataGroupMember(Node node, PartitionGroup nodes) {
-    return new DataGroupMember(new TCompactProtocol.Factory(), nodes, node, getLogManager(nodes),
+    DataGroupMember dataGroupMember = new DataGroupMember(new Factory(), nodes, node,
         testMetaMember) {
       @Override
       public boolean syncLeader() {
@@ -187,7 +179,7 @@ public class DataGroupMemberTest extends MemberTest {
                   if (fileSnapshot != null) {
                     snapshotBufferMap.put(requiredSlot, fileSnapshot.serialize());
                   }
-                  synchronized (dataGroupMember) {
+                  synchronized (DataGroupMemberTest.this.dataGroupMember) {
                     pulledSnapshots.add(requiredSlot);
                   }
                 }
@@ -212,6 +204,8 @@ public class DataGroupMemberTest extends MemberTest {
         }
       }
     };
+    dataGroupMember.setLogManager(getLogManager(nodes));
+    return dataGroupMember;
   }
 
   @Test
@@ -326,11 +320,13 @@ public class DataGroupMemberTest extends MemberTest {
     }
     snapshot.setTimeseriesSchemas(schemaList);
 
-    // resource1 exists locally, resource2 does not exist locally and without modification,
-    // resource2 does not exist locally and with modification
+    // resource0, resource1 exists locally, resource0 is closed but resource1 is not
+    // resource2 does not exist locally and without modification,
+    // resource3 does not exist locally and with modification
     snapshot.addFile(prepareResource(0, false), TestUtils.getNode(0));
     snapshot.addFile(prepareResource(1, false), TestUtils.getNode(0));
-    snapshot.addFile(prepareResource(2, true), TestUtils.getNode(0));
+    snapshot.addFile(prepareResource(2, false), TestUtils.getNode(0));
+    snapshot.addFile(prepareResource(3, true), TestUtils.getNode(0));
 
     // create a local resource1
     StorageGroupProcessor processor = StorageEngine.getInstance()
@@ -342,11 +338,15 @@ public class DataGroupMemberTest extends MemberTest {
     insertPlan.setSchemas(new MeasurementSchema[] {TestUtils.getTestSchema(0, 0)});
     insertPlan.setValues(new String[]{"1.0"});
     processor.insert(insertPlan);
-    processor.asyncCloseAllWorkingTsFileProcessors();
+    processor.syncCloseAllWorkingTsFileProcessors();
+
+    // create a local resource2
+    insertPlan.setTime(1);
+    processor.insert(insertPlan);
 
     dataGroupMember.applySnapshot(snapshot, 0);
     assertEquals(3, processor.getSequenceFileTreeSet().size());
-    assertEquals(0, processor.getUnSequenceFileList().size());
+    assertEquals(1, processor.getUnSequenceFileList().size());
     Deletion deletion = new Deletion(new Path(TestUtils.getTestSg(0)), 0, 0);
     assertTrue(processor.getSequenceFileTreeSet().get(2).getModFile().getModifications()
         .contains(deletion));
@@ -394,25 +394,6 @@ public class DataGroupMemberTest extends MemberTest {
   }
 
   @Test
-  public void testPullRemoteSnapshot() throws TTransportException {
-    dataGroupMember.start();
-    try {
-      hasInitialSnapshots = false;
-      partitionTable.addNode(TestUtils.getNode(100));
-      List<Integer> requiredSlots =
-          new ArrayList<>(partitionTable.getPreviousNodeMap(TestUtils.getNode(100)).keySet());
-      dataGroupMember.pullNodeAdditionSnapshots(requiredSlots, TestUtils.getNode(100));
-      assertEquals(requiredSlots.size(), receivedSnapshots.size());
-      for (Integer requiredSlot : requiredSlots) {
-        receivedSnapshots.get(requiredSlot).getRemoteSnapshot();
-        assertTrue(MManager.getInstance().isPathExist(TestUtils.getTestSeries(1, requiredSlot)));
-      }
-    } finally {
-      dataGroupMember.stop();
-    }
-  }
-
-  @Test
   public void testFollowerExecuteNonQuery() {
     dataGroupMember.setCharacter(NodeCharacter.FOLLOWER);
     dataGroupMember.setLeader(TestUtils.getNode(1));
@@ -789,12 +770,12 @@ public class DataGroupMemberTest extends MemberTest {
       throws IOException {
     TsFileResource resource = new RemoteTsFileResource();
     File file = new File("target" + File.separator + TestUtils.getTestSg(0) + File.separator + "0",
-        "0-" + (serialNum + 101L) + "-0.tsfile");
+        "0-" + (serialNum + 1L) + "-0.tsfile");
     file.getParentFile().mkdirs();
     file.createNewFile();
 
     resource.setFile(file);
-    resource.setHistoricalVersions(Collections.singleton(serialNum + 101L));
+    resource.setHistoricalVersions(Collections.singleton(serialNum + 1L));
     resource.updateStartTime(TestUtils.getTestSg(0), serialNum * 100);
     resource.updateEndTime(TestUtils.getTestSg(0), (serialNum + 1) * 100 - 1);
     if (withModification) {
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/server/member/MetaGroupMemberTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/server/member/MetaGroupMemberTest.java
index 4aa8c00..a9ed1a4 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/server/member/MetaGroupMemberTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/server/member/MetaGroupMemberTest.java
@@ -120,7 +120,7 @@ public class MetaGroupMemberTest extends MemberTest {
     DataGroupMember dataGroupMember = getDataGroupMember(allNodes, TestUtils.getNode(0));
     dataGroupMember.setCharacter(LEADER);
     dataClusterServer = new DataClusterServer(TestUtils.getNode(0),
-        new DataGroupMember.Factory(null, metaGroupMember, null) {
+        new DataGroupMember.Factory(null, metaGroupMember) {
           @Override
           public DataGroupMember create(PartitionGroup partitionGroup, Node thisNode) {
             return getDataGroupMember(partitionGroup, thisNode);
@@ -136,8 +136,7 @@ public class MetaGroupMemberTest extends MemberTest {
   }
 
   private DataGroupMember getDataGroupMember(PartitionGroup group, Node node) {
-    return new DataGroupMember(null, group, node, new TestPartitionedLogManager(null,
-        partitionTable, group.getHeader(), TestSnapshot::new),
+    DataGroupMember dataGroupMember = new DataGroupMember(null, group, node,
         metaGroupMember) {
       @Override
       public boolean syncLeader() {
@@ -172,6 +171,9 @@ public class MetaGroupMemberTest extends MemberTest {
         mockedPullTimeSeriesSchema(request, resultHandler);
       }
     };
+    dataGroupMember.setLogManager(new TestPartitionedLogManager(null,
+        partitionTable, group.getHeader(), TestSnapshot::new));
+    return dataGroupMember;
   }
 
   private void mockedPullTimeSeriesSchema(PullSchemaRequest request,
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
index a85aa58..82e82d5 100755
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
@@ -1705,23 +1705,35 @@ public class StorageGroupProcessor {
     closeQueryLock.writeLock().lock();
     try {
       Iterator<TsFileResource> iterator = sequenceFileTreeSet.iterator();
-      removeFullyOverlapFiles(resource, iterator);
+      removeFullyOverlapFiles(resource, iterator, true);
 
       iterator = unSequenceFileList.iterator();
-      removeFullyOverlapFiles(resource, iterator);
+      removeFullyOverlapFiles(resource, iterator, false);
     } finally {
       closeQueryLock.writeLock().unlock();
       writeUnlock();
     }
   }
 
-  private void removeFullyOverlapFiles(TsFileResource resource, Iterator<TsFileResource> iterator) {
+  private void removeFullyOverlapFiles(TsFileResource resource, Iterator<TsFileResource> iterator
+      , boolean isSeq) {
     while (iterator.hasNext()) {
       TsFileResource seqFile = iterator.next();
       if (resource.getHistoricalVersions().containsAll(seqFile.getHistoricalVersions())
           && !resource.getHistoricalVersions().equals(seqFile.getHistoricalVersions())
           && seqFile.getWriteQueryLock().writeLock().tryLock()) {
         try {
+          if (!seqFile.isClosed()) {
+            // also remove the TsFileProcessor if the overlapped file is not closed
+            long timePartition = seqFile.getTimePartition();
+            Map<Long, TsFileProcessor> fileProcessorMap = isSeq ? workSequenceTsFileProcessors :
+                workUnsequenceTsFileProcessors;
+            TsFileProcessor tsFileProcessor = fileProcessorMap.get(timePartition);
+            if (tsFileProcessor != null && tsFileProcessor.getTsFileResource() == seqFile) {
+              tsFileProcessor.syncClose();
+              fileProcessorMap.remove(timePartition);
+            }
+          }
           iterator.remove();
           seqFile.remove();
         } catch (Exception e) {
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java
index bab0d53..7b4ae61 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java
@@ -581,9 +581,7 @@ public class TsFileResource {
   public long getMaxVersion() {
     long maxVersion = 0;
     if (historicalVersions != null) {
-      for (Long historicalVersion : historicalVersions) {
-        maxVersion = Math.max(historicalVersion, maxVersion);
-      }
+      maxVersion = Collections.max(historicalVersions);
     }
     return maxVersion;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
index 4f3ee59..0b76390 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
@@ -587,7 +587,7 @@ public class MManager {
    *
    * @return storage group in the given path
    */
-  public String getStorageGroupName(String path) throws MetadataException {
+  public String getStorageGroupName(String path) throws StorageGroupNotSetException {
     lock.readLock().lock();
     try {
       return mtree.getStorageGroupName(path);
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java b/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
index b243141..9d84d31 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
@@ -427,7 +427,7 @@ public class MTree implements Serializable {
    *
    * @return storage group in the given path
    */
-  String getStorageGroupName(String path) throws MetadataException {
+  String getStorageGroupName(String path) throws StorageGroupNotSetException {
     String[] nodes = MetaUtils.getNodeNames(path);
     MNode cur = root;
     for (int i = 1; i < nodes.length; i++) {