This is an automated email from the ASF dual-hosted git repository. haonan pushed a commit to branch IOTDB-1344 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 700d528eb323ce55568e52eb78b32e4433d1b126 Author: HTHou <[email protected]> AuthorDate: Thu Apr 29 15:16:41 2021 +0800 [IOTDB-1344] Deleting Storage Group does not clear the count of time series --- .../org/apache/iotdb/db/metadata/MManager.java | 6 ++- .../iotdb/db/metadata/MManagerBasicTest.java | 54 ++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) 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 5e35f82..b7398be 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 @@ -749,7 +749,7 @@ public class MManager { public void deleteStorageGroups(List<PartialPath> storageGroups) throws MetadataException { try { for (PartialPath storageGroup : storageGroups) { - totalSeriesNumber.addAndGet(mtree.getAllTimeseriesCount(storageGroup)); + totalSeriesNumber.addAndGet(-mtree.getAllTimeseriesCount(storageGroup)); // clear cached MNode if (!allowToCreateNewSeries && totalSeriesNumber.get() * ESTIMATED_SERIES_SIZE < MTREE_SIZE_THRESHOLD) { @@ -2447,4 +2447,8 @@ public class MManager { private void setUsingDeviceTemplate(SetUsingDeviceTemplatePlan plan) throws MetadataException { getDeviceNode(plan.getPrefixPath()).setUseTemplate(true); } + + public long getTotalSeriesNumber() { + return totalSeriesNumber.get(); + } } diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java b/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java index ab13c55..1237bef 100644 --- a/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java +++ b/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java @@ -1263,4 +1263,58 @@ public class MManagerBasicTest { e.getMessage()); } } + + @Test + public void testTotalSeriesNumber() { + MManager manager = IoTDB.metaManager; + + try { + manager.setStorageGroup(new PartialPath("root.laptop")); + manager.createTimeseries( + new PartialPath("root.laptop.d1"), + TSDataType.INT32, + TSEncoding.PLAIN, + CompressionType.GZIP, + null); + manager.createTimeseries( + new PartialPath("root.laptop.d1.s1"), + TSDataType.INT32, + TSEncoding.PLAIN, + CompressionType.GZIP, + null); + manager.createTimeseries( + new PartialPath("root.laptop.d1.s1.t1"), + TSDataType.INT32, + TSEncoding.PLAIN, + CompressionType.GZIP, + null); + manager.createTimeseries( + new PartialPath("root.laptop.d1.s2"), + TSDataType.INT32, + TSEncoding.PLAIN, + CompressionType.GZIP, + null); + manager.createTimeseries( + new PartialPath("root.laptop.d2.s1"), + TSDataType.INT32, + TSEncoding.PLAIN, + CompressionType.GZIP, + null); + manager.createTimeseries( + new PartialPath("root.laptop.d2.s2"), + TSDataType.INT32, + TSEncoding.PLAIN, + CompressionType.GZIP, + null); + + assertEquals(6, manager.getTotalSeriesNumber()); + manager.deleteTimeseries(new PartialPath("root.laptop.d2.s1")); + assertEquals(5, manager.getTotalSeriesNumber()); + manager.deleteStorageGroups(Collections.singletonList(new PartialPath("root.laptop"))); + assertEquals(0, manager.getTotalSeriesNumber()); + } catch (MetadataException e) { + e.printStackTrace(); + fail(e.getMessage()); + } + } }
