You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ge...@apache.org on 2020/07/14 11:56:24 UTC
[incubator-iotdb] branch optimize_path updated: add set StorageGroup
This is an automated email from the ASF dual-hosted git repository.
geniuspig pushed a commit to branch optimize_path
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/optimize_path by this push:
new 6297afb add set StorageGroup
6297afb is described below
commit 6297afbc1f2738d5d4b673d6b682ad45e48ee1ef
Author: zhutianci <zh...@gmail.com>
AuthorDate: Tue Jul 14 19:56:06 2020 +0800
add set StorageGroup
---
.../org/apache/iotdb/db/metadata/MManager.java | 28 ++++++++++++++++++++++
.../java/org/apache/iotdb/db/metadata/MTree.java | 6 +++--
.../apache/iotdb/db/qp/executor/PlanExecutor.java | 2 +-
.../iotdb/db/qp/strategy/LogicalGenerator.java | 4 ++--
.../qp/strategy/optimizer/ConcatPathOptimizer.java | 4 ++--
.../org/apache/iotdb/tsfile/read/common/Path.java | 1 -
6 files changed, 37 insertions(+), 8 deletions(-)
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 b810458..0f04fd3 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
@@ -601,6 +601,34 @@ public class MManager {
}
/**
+ * Set storage group of the given path to MTree. Check
+ *
+ * @param nodes nodes
+ */
+ public void setStorageGroup(List<String> nodes) throws MetadataException {
+ lock.writeLock().lock();
+ try {
+ MNode node = mtree.setStorageGroup(nodes);
+ IoTDBConfigDynamicAdapter.getInstance().addOrDeleteStorageGroup(1);
+
+ if (config.isEnableParameterAdapter()) {
+ ActiveTimeSeriesCounter.getInstance().init(node.getFullPath());
+ seriesNumberInStorageGroups.put(node.getFullPath(), 0);
+ }
+ if (!isRecovering) {
+ logWriter.setStorageGroup(node.getFullPath());
+ }
+ } catch (IOException e) {
+ throw new MetadataException(e.getMessage());
+ } catch (ConfigAdjusterException e) {
+ mtree.deleteStorageGroup(nodes);
+ throw new MetadataException(e);
+ } finally {
+ lock.writeLock().unlock();
+ }
+ }
+
+ /**
* Delete storage groups of given paths from MTree. Log format: "delete_storage_group,sg1,sg2,sg3"
*
* @param storageGroups list of paths to be deleted. Format: root.node
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 8bc3b30..9dd8b0c 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
@@ -242,8 +242,9 @@ public class MTree implements Serializable {
*
* @param nodeNames nodeNames
*/
- void setStorageGroup(List<String> nodeNames) throws MetadataException {
+ MNode setStorageGroup(List<String> nodeNames) throws MetadataException {
MNode cur = root;
+ StorageGroupMNode storageGroupMNode = null;
if (nodeNames.size() <= 1 || !nodeNames.get(0).equals(root.getName())) {
throw new IllegalPathException(nodeNames.toString());
}
@@ -264,11 +265,12 @@ public class MTree implements Serializable {
// node b has child sg
throw new StorageGroupAlreadySetException(nodeNames.toString());
} else {
- StorageGroupMNode storageGroupMNode =
+ storageGroupMNode =
new StorageGroupMNode(
cur, nodeNames.get(i), IoTDBDescriptor.getInstance().getConfig().getDefaultTTL());
cur.addChild(nodeNames.get(i), storageGroupMNode);
}
+ return storageGroupMNode;
}
/**
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
index d80a464..5b6de19 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
@@ -1033,7 +1033,7 @@ public class PlanExecutor implements IPlanExecutor {
throws QueryProcessException {
Path path = setStorageGroupPlan.getPath();
try {
- mManager.setStorageGroup(path.getFullPath());
+ mManager.setStorageGroup(path.getNodes());
} catch (MetadataException e) {
throw new QueryProcessException(e);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java b/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
index 7f7c29b..24f4b1e 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/strategy/LogicalGenerator.java
@@ -785,10 +785,10 @@ public class LogicalGenerator extends SqlBaseBaseListener {
@Override
public void enterDeleteStorageGroup(DeleteStorageGroupContext ctx) {
super.enterDeleteStorageGroup(ctx);
- List<Path> deletePaths = new ArrayList<>();
+ List<String> deletePaths = new ArrayList<>();
List<FullPathContext> fullPaths = ctx.fullPath();
for (FullPathContext fullPath : fullPaths) {
- deletePaths.add(parseFullPath(fullPath));
+ deletePaths.add(fullPath.getText());
}
DeleteStorageGroupOperator deleteStorageGroupOperator = new DeleteStorageGroupOperator(
SQLConstant.TOK_METADATA_DELETE_FILE_LEVEL);
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java b/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
index 7948166..2f6c7ed 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/strategy/optimizer/ConcatPathOptimizer.java
@@ -164,7 +164,7 @@ public class ConcatPathOptimizer implements ILogicalOptimizer {
// selectPath cannot start with ROOT, which is guaranteed by TSParser
Path selectPath = suffixPaths.get(i);
for (Path fromPath : fromPaths) {
- allPaths.add(Path.addNodes(selectPath, fromPath));
+ allPaths.add(Path.addNodes(fromPath, selectPath));
extendListSafely(originAggregations, i, afterConcatAggregations);
}
}
@@ -225,7 +225,7 @@ public class ConcatPathOptimizer implements ILogicalOptimizer {
return operator;
}
List<Path> concatPaths = new ArrayList<>();
- fromPaths.forEach(fromPath -> concatPaths.add(Path.addNodes(filterPath, fromPath)));
+ fromPaths.forEach(fromPath -> concatPaths.add(Path.addNodes(fromPath, filterPath)));
List<Path> noStarPaths = removeStarsInPathWithUnique(concatPaths);
filterPaths.addAll(noStarPaths);
if (noStarPaths.size() == 1) {
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/Path.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/Path.java
index f2d5d14..8cef5d1 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/Path.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/common/Path.java
@@ -19,7 +19,6 @@
package org.apache.iotdb.tsfile.read.common;
import java.io.Serializable;
-import java.util.ArrayList;
import java.util.List;
import org.apache.iotdb.tsfile.common.constant.TsFileConstant;
import org.apache.iotdb.tsfile.utils.StringContainer;