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 08:45:14 UTC

[incubator-iotdb] 01/01: Merge branch 'master' into optimize_path

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

commit 2f0c07dfd2ccd30f90ede7665324e90511d22fec
Merge: 0e5b4f9 d8777ed
Author: zhutianci <zh...@gmail.com>
AuthorDate: Tue Jul 14 16:44:48 2020 +0800

    Merge branch 'master' into optimize_path

 LICENSE-binary                                     |  72 +++++++--
 cli/pom.xml                                        |   1 +
 cli/src/assembly/resources/sbin/start-cli.sh       |   2 +-
 .../java/org/apache/iotdb/cli/AbstractCli.java     |  10 ++
 distribution/pom.xml                               |   1 +
 docs/SystemDesign/DataQuery/QueryFundamentals.md   |  43 +++++-
 docs/SystemDesign/SchemaManager/SchemaManager.md   |  45 ++++++
 .../Concept/Data Model and Terminology.md          |   4 +-
 .../DML Data Manipulation Language.md              |  28 +++-
 docs/UserGuide/Operation Manual/SQL Reference.md   |  23 ++-
 .../System Tools/Performance Tracing Tool.md       |  61 ++++++++
 .../zh/SystemDesign/DataQuery/QueryFundamentals.md |  38 ++++-
 .../zh/SystemDesign/SchemaManager/SchemaManager.md |  41 ++++++
 .../Concept/Data Model and Terminology.md          |   6 +-
 .../DML Data Manipulation Language.md              |  25 +++-
 .../zh/UserGuide/Operation Manual/SQL Reference.md |  27 +++-
 .../System Tools/Performance Tracing Tool.md       |  61 ++++++++
 .../main/java/org/apache/iotdb/SessionExample.java |   2 +-
 hadoop/pom.xml                                     |   5 +-
 .../apache/iotdb/hadoop/tsfile/TSFInputFormat.java |  23 ++-
 .../iotdb/hadoop/tsfile/TSFRecordReader.java       |  27 ++--
 .../iotdb/hadoop/tsfile/TSFRecordWriter.java       |   3 +-
 hive-connector/pom.xml                             |   7 +-
 .../org/apache/iotdb/hive/TSFHiveInputFormat.java  |  11 +-
 .../java/org/apache/iotdb/hive/TsFileSerDe.java    |  18 ++-
 jdbc/pom.xml                                       |   4 +-
 licenses/EDL License 1.0                           |  11 --
 pom.xml                                            |  19 +--
 server/pom.xml                                     |  11 ++
 .../resources/conf/iotdb-engine.properties         |  11 +-
 .../iotdb/db/auth/authorizer/BasicAuthorizer.java  |   2 +-
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |  21 +--
 .../org/apache/iotdb/db/conf/IoTDBConfigCheck.java |  35 +++--
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |  21 ++-
 .../db/conf/directories/DirectoryManager.java      |   2 +-
 .../org/apache/iotdb/db/engine/StorageEngine.java  |  23 ++-
 .../apache/iotdb/db/engine/cache/ChunkCache.java   |   8 +-
 .../iotdb/db/engine/memtable/AbstractMemTable.java |  23 +--
 .../apache/iotdb/db/engine/memtable/IMemTable.java |   5 +-
 .../db/engine/memtable/IWritableMemChunk.java      |  10 +-
 .../iotdb/db/engine/memtable/WritableMemChunk.java |   9 +-
 .../db/engine/merge/task/MergeMultiChunkTask.java  |   3 +-
 .../iotdb/db/engine/modification/Deletion.java     |  47 ++++--
 .../io/LocalTextModificationAccessor.java          |  20 ++-
 .../engine/storagegroup/StorageGroupProcessor.java | 146 +++++++++++--------
 .../db/engine/storagegroup/TsFileProcessor.java    |   3 +-
 .../db/engine/storagegroup/TsFileResource.java     |  10 +-
 .../version/SimpleFileVersionController.java       |  10 +-
 .../iotdb/db/exception/query/PathException.java    |  38 -----
 .../db/exception/runtime/SQLParserException.java   |   7 +-
 .../org/apache/iotdb/db/metadata/MManager.java     | 109 +++++++++++---
 .../java/org/apache/iotdb/db/metadata/MTree.java   |  80 ++++++----
 .../iotdb/db/metadata/mnode/StorageGroupMNode.java |   1 -
 .../apache/iotdb/db/monitor/MonitorConstants.java  |   2 +-
 .../org/apache/iotdb/db/monitor/StatMonitor.java   |   2 +-
 .../apache/iotdb/db/qp/constant/SQLConstant.java   |   4 +-
 .../apache/iotdb/db/qp/executor/IPlanExecutor.java |   5 +-
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  | 162 ++++++++++-----------
 .../db/qp/logical/crud/DeleteDataOperator.java     |  18 ++-
 .../iotdb/db/qp/physical/crud/DeletePlan.java      |  49 +++++--
 .../iotdb/db/qp/physical/crud/InsertPlan.java      |  12 ++
 .../iotdb/db/qp/physical/crud/InsertRowPlan.java   |  39 +++--
 .../db/qp/physical/crud/InsertTabletPlan.java      | 123 +++++++---------
 .../db/qp/physical/sys/ShowTimeSeriesPlan.java     |  18 +++
 .../iotdb/db/qp/strategy/LogicalGenerator.java     |  59 ++++++--
 .../iotdb/db/qp/strategy/PhysicalGenerator.java    |   2 +-
 .../iotdb/db/query/control/TracingManager.java     |   4 +-
 .../db/query/dataset/ShowTimeseriesDataSet.java    |  80 ++++++++++
 .../query/dataset/groupby/GroupByFillDataSet.java  |   2 +-
 .../iotdb/db/query/executor/LastQueryExecutor.java |  26 +++-
 .../iotdb/db/query/executor/QueryRouter.java       |   7 +-
 .../db/query/executor/RawDataQueryExecutor.java    |  12 +-
 .../java/org/apache/iotdb/db/service/Monitor.java  |   4 +-
 .../org/apache/iotdb/db/service/MonitorMBean.java  |   2 +-
 .../org/apache/iotdb/db/service/TSServiceImpl.java |  79 +++++++---
 .../iotdb/db/tools/memestimation/MemEstTool.java   |   8 +-
 .../org/apache/iotdb/db/utils/CommonUtils.java     |  32 ++--
 .../org/apache/iotdb/db/utils/OpenFileNumUtil.java |   2 +-
 .../java/org/apache/iotdb/db/utils/QueryUtils.java | 160 ++++++++++++++++----
 .../org/apache/iotdb/db/utils/SchemaUtils.java     |   7 +-
 .../org/apache/iotdb/db/utils/SerializeUtils.java  |  24 ++-
 .../apache/iotdb/db/utils/TypeInferenceUtils.java  |   4 +-
 .../iotdb/db/utils/datastructure/TVList.java       |  35 +++--
 .../iotdb/db/writelog/recover/LogReplayer.java     |   8 +-
 .../db/engine/cache/ChunkMetadataCacheTest.java    |  13 +-
 .../iotdb/db/engine/merge/MergeTaskTest.java       |   2 +-
 .../engine/modification/DeletionFileNodeTest.java  |  51 ++++---
 .../db/engine/modification/DeletionQueryTest.java  |  82 ++++++-----
 .../engine/modification/ModificationFileTest.java  |   8 +-
 .../storagegroup/StorageGroupProcessorTest.java    |  36 +++--
 .../iotdb/db/engine/storagegroup/TTLTest.java      |  19 ++-
 .../iotdb/db/integration/IoTDBDeletionIT.java      |  37 +++++
 .../apache/iotdb/db/integration/IoTDBLastIT.java   |  52 +++++++
 .../iotdb/db/integration/IoTDBMultiSeriesIT.java   |   2 +
 .../iotdb/db/integration/IoTDBRestartIT.java       |   7 +
 .../iotdb/db/integration/IoTDBSimpleQueryIT.java   | 151 +++++++++++++++++++
 .../iotdb/db/metadata/MManagerBasicTest.java       |   3 +-
 .../iotdb/db/qp/plan/LogicalPlanSmallTest.java     |  93 ++++++++++++
 .../apache/iotdb/db/qp/plan/PhysicalPlanTest.java  |  11 ++
 .../apache/iotdb/db/qp/plan/SerializationTest.java |  88 +++++++++++
 .../query/executor/GroupByEngineDataSetTest.java   |   9 +-
 .../reader/series/SeriesAggregateReaderTest.java   |   3 +-
 .../reader/series/SeriesReaderByTimestampTest.java |   3 +-
 .../db/query/reader/series/SeriesReaderTest.java   |   3 +-
 .../query/reader/series/SeriesReaderTestUtil.java  |   5 +-
 .../org/apache/iotdb/db/tools/WalCheckerTest.java  |   2 +-
 .../apache/iotdb/db/utils/EnvironmentUtils.java    |   7 +-
 .../apache/iotdb/db/writelog/PerformanceTest.java  |   4 +-
 .../iotdb/db/writelog/WriteLogNodeManagerTest.java |   2 +-
 .../apache/iotdb/db/writelog/WriteLogNodeTest.java |  14 +-
 .../iotdb/db/writelog/io/LogWriterReaderTest.java  |   2 +-
 .../db/writelog/io/MultiFileLogReaderTest.java     |   2 +-
 .../iotdb/db/writelog/recover/LogReplayerTest.java |   6 +-
 service-rpc/pom.xml                                |   3 +-
 session/pom.xml                                    |   2 +-
 .../java/org/apache/iotdb/session/Session.java     |  19 ++-
 site/iotdb-doap.rdf                                |  80 ++++++++++
 site/src/main/.vuepress/config.js                  |  10 +-
 site/src/main/.vuepress/theme/styles/index.styl    |   4 +-
 .../apache/iotdb/spark/db/EnvironmentUtils.java    |   5 +-
 thrift/pom.xml                                     |   3 +-
 thrift/rpc-changelist.md                           |   4 +-
 thrift/src/main/thrift/cluster.thrift              |  34 ++++-
 thrift/src/main/thrift/rpc.thrift                  |   3 +-
 tsfile/pom.xml                                     |   8 +-
 .../apache/iotdb/tsfile/compress/ICompressor.java  |  47 +++++-
 .../iotdb/tsfile/compress/IUnCompressor.java       | 106 ++++++++++++--
 .../iotdb/tsfile/file/metadata/ChunkMetadata.java  |  46 ++++--
 .../file/metadata/enums/CompressionType.java       |  10 +-
 .../iotdb/tsfile/read/TsFileSequenceReader.java    |   2 +-
 .../org/apache/iotdb/tsfile/read/common/Chunk.java |  17 ++-
 .../apache/iotdb/tsfile/read/common/TimeRange.java |  51 ++++++-
 .../read/controller/CachedChunkLoaderImpl.java     |   2 +-
 .../iotdb/tsfile/read/filter/TimeFilter.java       |   2 +-
 .../tsfile/read/reader/chunk/ChunkReader.java      |  29 ++--
 .../read/reader/chunk/ChunkReaderByTimestamp.java  |   4 +-
 .../iotdb/tsfile/read/reader/page/PageReader.java  |  41 ++++--
 .../iotdb/tsfile/utils/ReadWriteIOUtils.java       |  12 +-
 .../tsfile/v1/file/metadata/ChunkMetadataV1.java   |  11 +-
 .../tsfile/v1/read/TsFileSequenceReaderForV1.java  |   2 +-
 .../tsfile/write/schema/MeasurementSchema.java     |   3 +
 ...easurementSchema.java => TimeseriesSchema.java} | 108 +++++---------
 .../apache/iotdb/tsfile/compress/CompressTest.java |  32 +++-
 .../compress/{SnappyTest.java => LZ4Test.java}     |  41 ++----
 .../apache/iotdb/tsfile/compress/SnappyTest.java   |  21 ++-
 .../iotdb/tsfile/read/common/TimeRangeTest.java    |  70 +++++++++
 .../iotdb/tsfile/read/reader/PageReaderTest.java   |  55 +++++++
 147 files changed, 2858 insertions(+), 1010 deletions(-)

diff --cc server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
index e132c07,431c35b..a474e17
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MTree.java
@@@ -849,45 -697,14 +850,44 @@@ public class MTree implements Serializa
    }
  
    /**
 +   * Get all time series schema under the given nodes
 +   *
 +   * <p>result: [name, alias, storage group, dataType, encoding, compression, offset]
 +   */
 +  List<String[]> getAllMeasurementSchemaByNodes(ShowTimeSeriesPlan plan) throws MetadataException {
 +    List<String[]> res;
 +    List<String> nodes = plan.getPath().getNodes();
 +    if (nodes.size() == 0 || !nodes.get(0).equals(root.getName())) {
 +      throw new IllegalPathException(plan.getPath().getFullPath());
 +    }
 +    limit.set(plan.getLimit());
 +    offset.set(plan.getOffset());
 +    curOffset.set(-1);
 +    count.set(0);
 +    if (offset.get() != 0 || limit.get() != 0) {
 +      res = new LinkedList<>();
 +      findPath(root, nodes.toArray(new String[0]), 1, "", res, true, false);
 +    } else {
 +      res = new LinkedList<>();
 +      findPath(root, nodes.toArray(new String[0]), 1, "", res, false, false);
 +    }
 +    // avoid memory leaks
 +    limit.remove();
 +    offset.remove();
 +    curOffset.remove();
 +    count.remove();
 +    return res;
 +  }
 +
 +  /**
     * Iterate through MTree to fetch metadata info of all leaf nodes under the given seriesPath
     *
-    * @param needLast if false, lastTimeStamp in timeseriesSchemaList will be null
+    * @param needLast             if false, lastTimeStamp in timeseriesSchemaList will be null
     * @param timeseriesSchemaList List<timeseriesSchema> result: [name, alias, storage group,
-    * dataType, encoding, compression, offset, lastTimeStamp]
+    *                             dataType, encoding, compression, offset, lastTimeStamp]
     */
-   private void findPath(MNode node, String[] nodes, int idx, String parent,
-       List<String[]> timeseriesSchemaList, boolean hasLimit, boolean needLast)
-       throws MetadataException {
+   private void findPath(MNode node, String[] nodes, int idx, List<String[]> timeseriesSchemaList,
+       boolean hasLimit, boolean needLast) throws MetadataException {
      if (node instanceof MeasurementMNode && nodes.length <= idx) {
        if (hasLimit) {
          curOffset.set(curOffset.get() + 1);