This is an automated email from the ASF dual-hosted git repository. haonan pushed a commit to branch IOTDB1344_12 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit ca16ba0b6e126de657cee91fbf7da618377fafb1 Author: HTHou <[email protected]> AuthorDate: Thu Apr 29 15:16:41 2021 +0800 [To rel/0.11][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 c6bcb78..f6bfb3c 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 @@ -621,7 +621,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) { @@ -1959,4 +1959,8 @@ public class MManager { boolean satisfy(String storageGroup); } + + 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 624f441..bd1c32b 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 @@ -736,4 +736,58 @@ public class MManagerBasicTest { fail(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()); + } + } }
