This is an automated email from the ASF dual-hosted git repository. qiaojialin pushed a commit to branch use_lock in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit cdff26fe12445e21b7570e0ad0f517292c6a87c3 Author: qiaojialin <[email protected]> AuthorDate: Thu Jun 4 00:01:35 2020 +0800 remove synchronized and trim --- .../db/engine/storagegroup/StorageGroupProcessor.java | 8 ++++---- .../main/java/org/apache/iotdb/db/metadata/MManager.java | 15 +++++++++++++++ .../org/apache/iotdb/db/metadata/mnode/InternalMNode.java | 4 ++-- .../org/apache/iotdb/db/qp/executor/PlanExecutor.java | 9 +++++---- .../org/apache/iotdb/db/qp/physical/crud/InsertPlan.java | 2 +- .../iotdb/db/qp/physical/crud/InsertTabletPlan.java | 6 +++--- .../java/org/apache/iotdb/db/service/TSServiceImpl.java | 6 ++---- .../java/org/apache/iotdb/session/IoTDBSessionIT.java | 9 +++++---- .../java/org/apache/iotdb/tsfile/read/common/Path.java | 3 +-- 9 files changed, 38 insertions(+), 24 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 dabc095..18bd93c 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 @@ -759,7 +759,7 @@ public class StorageGroupProcessor { } } - public void tryToUpdateBatchInsertLastCache(InsertTabletPlan plan, Long latestFlushedTime) + private void tryToUpdateBatchInsertLastCache(InsertTabletPlan plan, Long latestFlushedTime) throws WriteProcessException { MNode node = null; try { @@ -768,7 +768,7 @@ public class StorageGroupProcessor { String[] measurementList = plan.getMeasurements(); for (int i = 0; i < measurementList.length; i++) { // Update cached last value with high priority - ((LeafMNode) node.getChild(measurementList[i])) + ((LeafMNode) MManager.getChild(node, measurementList[i])) .updateCachedLast(plan.composeLastTimeValuePair(i), true, latestFlushedTime); } } catch (MetadataException e) { @@ -811,7 +811,7 @@ public class StorageGroupProcessor { } } - public void tryToUpdateInsertLastCache(InsertPlan plan, Long latestFlushedTime) + private void tryToUpdateInsertLastCache(InsertPlan plan, Long latestFlushedTime) throws WriteProcessException { MNode node = null; try { @@ -823,7 +823,7 @@ public class StorageGroupProcessor { continue; } // Update cached last value with high priority - ((LeafMNode) node.getChild(measurementList[i])) + ((LeafMNode) MManager.getChild(node, measurementList[i])) .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 0c48fe5..8bfd480 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 @@ -938,6 +938,21 @@ public class MManager { path, config.isAutoCreateSchemaEnabled(), config.getDefaultStorageGroupLevel()); } + public static MNode getChild(MNode parent, String child) { + MNode childNode = parent.getChild(child); + int tempCount = 0; + while (childNode == null) { + tempCount ++; + if (tempCount % 10000 == 0) { + throw new RuntimeException( + String + .format("can not get child [%s] from parent [%s]", child, parent.getName())); + } + childNode = parent.getChild(child); + } + return childNode; + } + /** * Get metadata in string */ 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 67c2537..2dc48b6 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 @@ -49,7 +49,7 @@ public class InternalMNode extends MNode { } @Override - public synchronized void addChild(String name, MNode child) { + public void addChild(String name, MNode child) { children.put(name, child); } @@ -89,7 +89,7 @@ public class InternalMNode extends MNode { } @Override - public synchronized MNode getChild(String name) { + public MNode getChild(String name) { return children.containsKey(name) ? children.get(name) : aliasChildren.get(name); } 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 2358311..5d6a268 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 @@ -875,7 +875,7 @@ public class PlanExecutor implements IPlanExecutor { MeasurementSchema[] schemas = new MeasurementSchema[measurementList.length]; for (int i = 0; i < measurementList.length; i++) { - String measurement = measurementList[i].trim(); + String measurement = measurementList[i]; try { if (!node.hasChild(measurement)) { if (!IoTDBDescriptor.getInstance().getConfig().isAutoCreateSchemaEnabled()) { @@ -886,7 +886,7 @@ public class PlanExecutor implements IPlanExecutor { Path path = new Path(deviceId, measurement); internalCreateTimeseries(path.toString(), dataType); } - LeafMNode measurementNode = (LeafMNode) node.getChild(measurement); + LeafMNode measurementNode = (LeafMNode) MManager.getChild(node, measurement); schemas[i] = measurementNode.getSchema(); // reset measurement to common name instead of alias @@ -1020,7 +1020,7 @@ public class PlanExecutor implements IPlanExecutor { String measurement; for (int i = 0; i < measurementList.length; i++) { - measurement = measurementList[i].trim(); + measurement = measurementList[i]; // check if timeseries exists if (!node.hasChild(measurement)) { if (!conf.isAutoCreateSchemaEnabled()) { @@ -1030,8 +1030,9 @@ public class PlanExecutor implements IPlanExecutor { Path path = new Path(deviceId, measurement); TSDataType dataType = dataTypes[i]; internalCreateTimeseries(path.getFullPath(), dataType); + } - LeafMNode measurementNode = (LeafMNode) node.getChild(measurement); + LeafMNode measurementNode = (LeafMNode) MManager.getChild(node, measurement); // check data type if (measurementNode.getSchema().getType() != insertTabletPlan.getDataTypes()[i]) { diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java index 119cc53..5bb84b3 100644 --- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java +++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertPlan.java @@ -225,7 +225,7 @@ public class InsertPlan extends PhysicalPlan { } public void setDeviceId(String deviceId) { - this.deviceId = deviceId.trim(); + this.deviceId = deviceId; } public String[] getMeasurements() { diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertTabletPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertTabletPlan.java index 20ab59b..4fcd813 100644 --- a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertTabletPlan.java +++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertTabletPlan.java @@ -73,18 +73,18 @@ public class InsertTabletPlan extends PhysicalPlan { public InsertTabletPlan(String deviceId, List<String> measurements) { super(false, OperatorType.BATCHINSERT); - this.deviceId = deviceId.trim(); + this.deviceId = deviceId; setMeasurements(measurements); } public InsertTabletPlan(String deviceId, String[] measurements) { super(false, OperatorType.BATCHINSERT); - this.deviceId = deviceId.trim(); + this.deviceId = deviceId; setMeasurements(measurements); } public InsertTabletPlan(String deviceId, String[] measurements, List<Integer> dataTypes) { super(false, OperatorType.BATCHINSERT); - this.deviceId = deviceId.trim(); + this.deviceId = deviceId; this.measurements = measurements; setDataTypes(dataTypes); } 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 93d6770..2e5412f 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 @@ -1210,7 +1210,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext { return RpcUtils.getTSBatchExecuteStatementResp(Arrays.asList(tsStatusArray)); } } catch (Exception e) { - logger.info("{}: error occurs when executing statements", IoTDBConstant.GLOBAL_DB_NAME, e); + logger.error("{}: error occurs when executing statements", IoTDBConstant.GLOBAL_DB_NAME, e); return RpcUtils .getTSBatchExecuteStatementResp(TSStatusCode.EXECUTE_STATEMENT_ERROR, e.getMessage()); } finally { @@ -1265,7 +1265,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext { } return RpcUtils.getTSBatchExecuteStatementResp(statusList); } catch (Exception e) { - logger.info("{}: error occurs when insertTablets", IoTDBConstant.GLOBAL_DB_NAME, e); + logger.error("{}: error occurs when insertTablets", IoTDBConstant.GLOBAL_DB_NAME, e); return RpcUtils .getTSBatchExecuteStatementResp(TSStatusCode.EXECUTE_STATEMENT_ERROR, e.getMessage()); } finally { @@ -1331,7 +1331,6 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext { if (status != null) { return status; } - logger.info("createTimeseries {}", req.getPath()); return executePlan(plan); } @@ -1341,7 +1340,6 @@ 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)), diff --git a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java index 9aa0e67..bc66859 100644 --- a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java +++ b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java @@ -114,18 +114,19 @@ public class IoTDBSessionIT { String deviceId = "root.sg1.d1"; List<String> measurements = new ArrayList<>(); - measurements.add("s1 "); + measurements.add("s1 "); List<String> values = new ArrayList<>(); values.add("1.0"); session.insertRecord(deviceId, 1L, measurements, values); - String[] expected = new String[]{"1\t1.0"}; + String[] expected = new String[]{"root.sg1.d1.s1 "}; - SessionDataSet dataSet = session.executeQueryStatement("select s1 from root.sg1.d1"); + assertFalse(session.checkTimeseriesExists("root.sg1.d1.s1 ")); + SessionDataSet dataSet = session.executeQueryStatement("show timeseries"); int i = 0; while (dataSet.hasNext()) { - assertEquals(expected[i], dataSet.next().toString()); + assertEquals(expected[i], dataSet.next().getFields().get(0).toString()); i++; } 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 709bd36..c7f74dd 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 @@ -82,7 +82,6 @@ public class Path implements Serializable, Comparable<Path> { * @param pathSc complete path string */ private void init(String pathSc) { - pathSc = pathSc.trim(); int i = 0; int j = 0; for (char c : pathSc.toCharArray()) { @@ -107,7 +106,7 @@ public class Path implements Serializable, Comparable<Path> { subStrs = pathSc.split("\'"); } device = subStrs[0]; - if (!device.trim().equals("")) { + if (!device.equals("")) { device = device.substring(0, subStrs[0].length() - 1); } measurement = subStrs[1];
