You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2020/06/10 09:15:38 UTC
[incubator-iotdb] branch master updated: Lazy Contruct AliasMap in
InternalMNode (#1343)
This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 3bad01d Lazy Contruct AliasMap in InternalMNode (#1343)
3bad01d is described below
commit 3bad01d3b0c6c72734648b9553bab6c10411b047
Author: Jackie Tien <Ja...@foxmail.com>
AuthorDate: Wed Jun 10 17:15:28 2020 +0800
Lazy Contruct AliasMap in InternalMNode (#1343)
---
.../iotdb/db/metadata/mnode/InternalMNode.java | 23 +++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/InternalMNode.java b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/InternalMNode.java
index c7dbcd5..fa2861f 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/InternalMNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/InternalMNode.java
@@ -18,15 +18,14 @@
*/
package org.apache.iotdb.db.metadata.mnode;
-import java.util.LinkedHashMap;
-import org.apache.iotdb.db.exception.metadata.DeleteFailedException;
+import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_SEPARATOR;
+import java.util.LinkedHashMap;
import java.util.Map;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
-
-import static org.apache.iotdb.db.conf.IoTDBConstant.PATH_SEPARATOR;
+import org.apache.iotdb.db.exception.metadata.DeleteFailedException;
public class InternalMNode extends MNode {
@@ -40,12 +39,12 @@ public class InternalMNode extends MNode {
public InternalMNode(MNode parent, String name) {
super(parent, name);
this.children = new LinkedHashMap<>();
- this.aliasChildren = new LinkedHashMap<>();
}
@Override
public boolean hasChild(String name) {
- return this.children.containsKey(name) || this.aliasChildren.containsKey(name);
+ return this.children.containsKey(name) ||
+ (aliasChildren != null && aliasChildren.containsKey(name));
}
@Override
@@ -75,11 +74,13 @@ public class InternalMNode extends MNode {
throw new DeleteFailedException(getFullPath() + PATH_SEPARATOR + name);
}
}
-}
+ }
@Override
public void deleteAliasChild(String alias) throws DeleteFailedException {
-
+ if (aliasChildren == null) {
+ return;
+ }
if (lock.writeLock().tryLock()) {
aliasChildren.remove(alias);
lock.writeLock().unlock();
@@ -90,7 +91,8 @@ public class InternalMNode extends MNode {
@Override
public MNode getChild(String name) {
- return children.containsKey(name) ? children.get(name) : aliasChildren.get(name);
+ return children.containsKey(name) ? children.get(name)
+ : (aliasChildren == null ? null : aliasChildren.get(name));
}
@Override
@@ -104,6 +106,9 @@ public class InternalMNode extends MNode {
@Override
public void addAlias(String alias, MNode child) {
+ if (aliasChildren == null) {
+ aliasChildren = new LinkedHashMap<>();
+ }
aliasChildren.put(alias, child);
}