This is an automated email from the ASF dual-hosted git repository. haonan pushed a commit to branch IOTDB1344_11 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 2ebb92917114442ae39dc00bc5aa8aabed80ba47 Author: HTHou <[email protected]> AuthorDate: Thu Apr 29 15:34:45 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 | 5 +- .../iotdb/db/metadata/MManagerBasicTest.java | 54 ++++++++++++++++++++++ 2 files changed, 58 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 d526753..1eedf02 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 @@ -607,7 +607,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) { @@ -1912,4 +1912,7 @@ 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 9d1f63d..4f9b34a 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 @@ -514,4 +514,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()); + } + } }
