This is an automated email from the ASF dual-hosted git repository. qiaojialin pushed a commit to branch add_get_sleep in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit 1ef7089774f2e3dfd8e0531780e4cbb09f1418b0 Author: qiaojialin <[email protected]> AuthorDate: Wed Jun 3 11:13:51 2020 +0800 add sleep in while --- .../iotdb/db/engine/storagegroup/StorageGroupProcessor.java | 5 +++-- .../src/main/java/org/apache/iotdb/db/metadata/MManager.java | 10 ++++++++-- .../java/org/apache/iotdb/db/metadata/mnode/LeafMNode.java | 8 +++++++- .../java/org/apache/iotdb/db/qp/executor/PlanExecutor.java | 5 +++-- .../main/java/org/apache/iotdb/db/service/TSServiceImpl.java | 3 ++- 5 files changed, 23 insertions(+), 8 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java index 6d8a3fe..facce34 100755 --- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java +++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java @@ -768,7 +768,8 @@ public class StorageGroupProcessor { String[] measurementList = plan.getMeasurements(); for (int i = 0; i < measurementList.length; i++) { // Update cached last value with high priority - ((LeafMNode) manager.getChild(node, measurementList[i], plan.getDeviceId())) + ((LeafMNode) manager.getChild(node, measurementList[i], + plan.getDeviceId() + " in StorageGroupProcessor-771")) .updateCachedLast(plan.composeLastTimeValuePair(i), true, latestFlushedTime); } } catch (MetadataException e) { @@ -823,7 +824,7 @@ public class StorageGroupProcessor { continue; } // Update cached last value with high priority - ((LeafMNode) manager.getChild(node, measurementList[i], plan.getDeviceId())) + ((LeafMNode) manager.getChild(node, measurementList[i], plan.getDeviceId()+ " in StorageGroupProcessor-826")) .updateCachedLast(plan.composeTimeValuePair(i), true, latestFlushedTime); } } catch (MetadataException e) { 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 e7ae081..20f42fd 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 @@ -868,8 +868,14 @@ public class MManager { int tempCount = 0; while (childNode == null) { tempCount ++; - if (tempCount % 10000 == 0) { - logger.warn("try to get child {} 10000 times from {}", child, info); + try { + Thread.sleep(1); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + logger.warn("Current thread is interrupted, ignore"); + } + if (tempCount % 1000 == 0) { + logger.warn("try to get child {} for {} times from {}", child, tempCount, info); } childNode = parent.getChild(child); } diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/LeafMNode.java b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/LeafMNode.java index bb64a10..3f65929 100644 --- a/server/src/main/java/org/apache/iotdb/db/metadata/mnode/LeafMNode.java +++ b/server/src/main/java/org/apache/iotdb/db/metadata/mnode/LeafMNode.java @@ -26,9 +26,13 @@ import org.apache.iotdb.tsfile.write.schema.MeasurementSchema; import java.util.Collections; import java.util.Map; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class LeafMNode extends MNode { + private static final Logger logger = LoggerFactory.getLogger(LeafMNode.class); + private static final long serialVersionUID = -1199657856921206435L; /** @@ -73,7 +77,9 @@ public class LeafMNode extends MNode { @Override public MNode getChild(String name) { - return null; + logger.warn("current node {} is a LeafMNode, can not get child {}", super.name, name); + throw new RuntimeException( + String.format("current node %s is a LeafMNode, can not get child %s", super.name, name)); } @Override 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 dde4957..da4c161 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 @@ -886,7 +886,7 @@ public class PlanExecutor implements IPlanExecutor { Path path = new Path(deviceId, measurement); internalCreateTimeseries(path.toString(), dataType); } - LeafMNode measurementNode = (LeafMNode) MManager.getInstance().getChild(node, measurement, deviceId); + LeafMNode measurementNode = (LeafMNode) MManager.getInstance().getChild(node, measurement, deviceId + " PlanExecutor-889"); schemas[i] = measurementNode.getSchema(); // reset measurement to common name instead of alias @@ -1033,7 +1033,8 @@ public class PlanExecutor implements IPlanExecutor { TSDataType dataType = dataTypes[i]; internalCreateTimeseries(path.getFullPath(), dataType); } - LeafMNode measurementNode = (LeafMNode) MManager.getInstance().getChild(node, measurementList[i], deviceId); + LeafMNode measurementNode = (LeafMNode) MManager.getInstance() + .getChild(node, measurementList[i], deviceId + " PlanExecutor-1036"); // check data type if (measurementNode.getSchema().getType() != insertTabletPlan.getDataTypes()[i]) { diff --git a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java index 27cfd44..93d6770 100644 --- a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java +++ b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java @@ -1331,6 +1331,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext { if (status != null) { return status; } + logger.info("createTimeseries {}", req.getPath()); return executePlan(plan); } @@ -1340,7 +1341,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext { logger.info(INFO_NOT_LOGIN, IoTDBConstant.GLOBAL_DB_NAME); return RpcUtils.getTSBatchExecuteStatementResp(TSStatusCode.NOT_LOGIN_ERROR); } - + logger.info("createMultiTimeseries, first is {}", req.getPaths().get(0)); List<TSStatus> statusList = new ArrayList<>(req.paths.size()); for (int i = 0; i < req.paths.size(); i++) { CreateTimeSeriesPlan plan = new CreateTimeSeriesPlan(new Path(req.getPaths().get(i)),
