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++) {