You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2021/04/29 07:17:17 UTC
[iotdb] 01/01: [IOTDB-1344] Deleting Storage Group does not clear
the count of time series
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 <hh...@outlook.com>
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());
+ }
+ }
}