This is an automated email from the ASF dual-hosted git repository. lta pushed a commit to branch cluster_multi_raft in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit fdc8d327c6d196a0ab94043f0e6913f3bd5f00f1 Merge: c4a9dcd a898e72 Author: lta <[email protected]> AuthorDate: Mon Dec 28 17:33:12 2020 +0800 merge master .github/pull_request_template.md | 93 ++++ .github/workflows/sonar_and_coverall.yml | 2 +- .mvn/wrapper/maven-wrapper.properties | 2 +- .travis.yml | 10 +- .../antlr4/org/apache/iotdb/db/qp/sql/SqlBase.g4 | 52 +- .../java/org/apache/iotdb/cluster/ClusterMain.java | 2 +- .../cluster/client/async/AsyncClientPool.java | 1 - .../apache/iotdb/cluster/config/ClusterConfig.java | 4 +- .../cluster/query/ClusterConcatPathOptimizer.java | 4 +- .../iotdb/cluster/query/ClusterPlanExecutor.java | 10 +- .../iotdb/cluster/query/ClusterPlanRouter.java | 9 - .../cluster/server/service/BaseSyncService.java | 7 +- .../apache/iotdb/cluster/utils/ClusterUtils.java | 4 +- .../org/apache/iotdb/cluster/common/IoTDBTest.java | 2 +- .../cluster/log/applier/DataLogApplierTest.java | 4 +- .../cluster/partition/SlotPartitionTableTest.java | 14 - .../query/ClusterPhysicalGeneratorTest.java | 10 +- .../cluster/query/ClusterPlanExecutorTest.java | 4 +- docs/UserGuide/Client/Status Codes.md | 8 + .../Operation Manual/UDF User Defined Function.md | 410 +++++++++++++++ docs/zh/UserGuide/Client/Status Codes.md | 9 +- .../Operation Manual/UDF User Defined Function.md | 410 +++++++++++++++ example/pom.xml | 1 + example/udf/pom.xml | 82 +++ .../java/org/apache/iotdb/udf/UDTFExample.java | 56 ++ .../resources/conf/iotdb-engine.properties | 24 +- .../org/apache/iotdb/db/auth/AuthorityChecker.java | 15 +- .../apache/iotdb/db/auth/entity/PrivilegeType.java | 2 +- .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 76 ++- .../org/apache/iotdb/db/conf/IoTDBConstant.java | 3 + .../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 43 ++ .../UDFRegistrationException.java} | 72 ++- .../main/java/org/apache/iotdb/db/qp/Planner.java | 9 +- .../apache/iotdb/db/qp/constant/DatetimeUtils.java | 40 ++ .../apache/iotdb/db/qp/constant/SQLConstant.java | 14 +- .../apache/iotdb/db/qp/executor/IPlanExecutor.java | 11 +- .../apache/iotdb/db/qp/executor/PlanExecutor.java | 70 ++- .../org/apache/iotdb/db/qp/logical/Operator.java | 3 +- .../iotdb/db/qp/logical/crud/SFWOperator.java | 16 +- .../iotdb/db/qp/logical/crud/SelectOperator.java | 47 +- .../CreateFunctionOperator.java} | 99 ++-- .../DropFunctionOperator.java} | 81 ++- .../ShowFunctionsOperator.java} | 78 ++- .../iotdb/db/qp/physical/crud/QueryPlan.java | 2 +- .../apache/iotdb/db/qp/physical/crud/UDFPlan.java | 79 +-- .../apache/iotdb/db/qp/physical/crud/UDTFPlan.java | 118 +++++ .../iotdb/db/qp/physical/crud/UpdatePlan.java | 135 ----- .../sys/{ShowPlan.java => CreateFunctionPlan.java} | 114 ++-- .../iotdb/db/qp/physical/sys/DropFunctionPlan.java | 81 +-- .../sys/ShowFunctionsPlan.java} | 75 ++- .../apache/iotdb/db/qp/physical/sys/ShowPlan.java | 6 +- .../apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java | 152 ++++-- .../iotdb/db/qp/strategy/LogicalGenerator.java | 7 +- .../iotdb/db/qp/strategy/PhysicalGenerator.java | 130 +++-- .../qp/strategy/optimizer/ConcatPathOptimizer.java | 192 +++++-- .../db/query/aggregation/AggregateResult.java | 2 +- .../db/query/aggregation/AggregationType.java | 1 - .../db/query/control/QueryResourceManager.java | 6 +- .../db/query/dataset/AlignByDeviceDataSet.java | 4 +- .../db/query/dataset/DirectAlignByTimeDataSet.java | 72 ++- .../db/query/dataset/DirectNonAlignDataSet.java | 70 ++- .../apache/iotdb/db/query/dataset/ListDataSet.java | 4 +- .../db/query/dataset/NonAlignEngineDataSet.java | 28 +- .../dataset/RawQueryDataSetWithValueFilter.java | 4 +- .../dataset/RawQueryDataSetWithoutValueFilter.java | 24 +- .../db/query/dataset/ShowTimeseriesDataSet.java | 4 +- .../db/query/dataset/UDTFAlignByTimeDataSet.java | 277 ++++++++++ .../apache/iotdb/db/query/dataset/UDTFDataSet.java | 152 ++++++ .../db/query/dataset/UDTFNonAlignDataSet.java | 191 +++++++ .../dataset/groupby/GroupByEngineDataSet.java | 4 +- .../query/dataset/groupby/GroupByFillDataSet.java | 4 +- .../query/dataset/groupby/GroupByTimeDataSet.java | 4 +- .../groupby/GroupByWithValueFilterDataSet.java | 2 +- .../groupby/GroupByWithoutValueFilterDataSet.java | 2 +- .../iotdb/db/query/executor/IQueryRouter.java | 8 +- .../iotdb/db/query/executor/QueryRouter.java | 51 +- .../db/query/executor/RawDataQueryExecutor.java | 22 +- .../iotdb/db/query/executor/UDTFQueryExecutor.java | 84 +++ .../UpdateOperator.java => query/udf/api/UDF.java} | 70 ++- .../org/apache/iotdb/db/query/udf/api/UDTF.java | 101 ++++ .../apache/iotdb/db/query/udf/api/access/Row.java | 119 +++++ .../iotdb/db/query/udf/api/access/RowIterator.java | 85 +-- .../iotdb/db/query/udf/api/access/RowWindow.java | 61 +++ .../db/query/udf/api/collector/PointCollector.java | 137 +++++ .../api/customizer/config/UDFConfigurations.java} | 79 ++- .../api/customizer/config/UDTFConfigurations.java | 104 ++++ .../api/customizer/parameter/UDFParameters.java | 119 +++++ .../api/customizer/strategy/AccessStrategy.java | 64 +++ .../strategy/RowByRowAccessStrategy.java | 61 +++ .../strategy/SlidingSizeWindowAccessStrategy.java | 123 +++++ .../strategy/SlidingTimeWindowAccessStrategy.java | 249 +++++++++ .../iotdb/db/query/udf/core/access/RowImpl.java | 93 ++++ .../db/query/udf/core/access/RowIteratorImpl.java | 58 +++ .../db/query/udf/core/access/RowWindowImpl.java | 75 +++ .../db/query/udf/core/context/UDFContext.java | 134 +++++ .../db/query/udf/core/executor/UDTFExecutor.java | 92 ++++ .../iotdb/db/query/udf/core/input/InputLayer.java | 563 ++++++++++++++++++++ .../iotdb/db/query/udf/core/input/SafetyLine.java | 60 +++ .../db/query/udf/core/reader/LayerPointReader.java | 84 +-- .../udf/core/reader/LayerRowReader.java} | 79 ++- .../udf/core/reader/LayerRowWindowReader.java} | 77 ++- .../core/transformer/RawQueryPointTransformer.java | 72 +++ .../db/query/udf/core/transformer/Transformer.java | 93 ++++ .../core/transformer/UDFQueryRowTransformer.java | 84 +-- .../transformer/UDFQueryRowWindowTransformer.java | 46 ++ .../udf/core/transformer/UDFQueryTransformer.java | 89 ++++ .../query/udf/datastructure/SerializableList.java | 165 ++++++ .../primitive/ElasticSerializableIntList.java | 109 ++++ .../udf/datastructure/primitive/IntList.java} | 74 ++- .../primitive/SerializableIntList.java | 131 +++++ .../datastructure/primitive/WrappedIntArray.java | 90 ++-- .../row/ElasticSerializableRowRecordList.java | 234 +++++++++ .../row/SerializableRowRecordList.java | 245 +++++++++ .../tv/ElasticSerializableBinaryTVList.java | 121 +++++ .../tv/ElasticSerializableTVList.java | 312 +++++++++++ .../datastructure/tv/SerializableBinaryTVList.java | 79 +++ .../tv/SerializableBooleanTVList.java | 69 +++ .../datastructure/tv/SerializableDoubleTVList.java | 69 +++ .../datastructure/tv/SerializableFloatTVList.java | 69 +++ .../datastructure/tv/SerializableIntTVList.java | 69 +++ .../datastructure/tv/SerializableLongTVList.java | 69 +++ .../udf/datastructure/tv/SerializableTVList.java | 99 ++++ .../udf/service/TemporaryQueryDataFileService.java | 136 +++++ .../iotdb/db/query/udf/service/UDFClassLoader.java | 64 +++ .../iotdb/db/query/udf/service/UDFLogWriter.java | 69 +++ .../udf/service/UDFRegistrationInformation.java} | 93 ++-- .../query/udf/service/UDFRegistrationService.java | 329 ++++++++++++ .../java/org/apache/iotdb/db/service/IoTDB.java | 4 + .../org/apache/iotdb/db/service/ServiceType.java | 4 +- .../org/apache/iotdb/db/service/TSServiceImpl.java | 102 ++-- .../db/sync/receiver/transfer/SyncServiceImpl.java | 20 +- .../iotdb/db/sync/sender/transfer/SyncClient.java | 11 +- .../org/apache/iotdb/db/utils/SchemaUtils.java | 25 +- .../iotdb/db/writelog/recover/LogReplayer.java | 9 - .../apache/iotdb/db/auth/AuthorityCheckerTest.java | 3 - .../iotdb/db/engine/storagegroup/TTLTest.java | 2 +- .../iotdb/db/integration/IoTDBSimpleQueryIT.java | 6 +- .../iotdb/db/integration/IoTDBUDFManagementIT.java | 308 +++++++++++ .../db/integration/IoTDBUDFWindowQueryIT.java | 513 ++++++++++++++++++ .../integration/IoTDBUDTFAlignByTimeQueryIT.java | 525 +++++++++++++++++++ .../db/integration/IoTDBUDTFHybridQueryIT.java | 166 ++++++ .../db/integration/IoTDBUDTFNonAlignQueryIT.java | 337 ++++++++++++ .../apache/iotdb/db/metadata/PartialPathTest.java | 34 +- .../iotdb/db/qp/plan/ConcatOptimizerTest.java | 7 +- .../apache/iotdb/db/qp/plan/PhysicalPlanTest.java | 213 +++++++- .../query/dataset/UDTFAlignByTimeDataSetTest.java | 578 +++++++++++++++++++++ .../ElasticSerializableRowRecordListTest.java | 224 ++++++++ .../ElasticSerializableTVListTest.java | 251 +++++++++ .../SerializableBinaryTVListTest.java | 80 +++ .../SerializableBooleanTVListTest.java | 80 +++ .../SerializableDoubleTVListTest.java | 79 +++ .../datastructure/SerializableFloatTVListTest.java | 78 +++ .../datastructure/SerializableIntTVListTest.java | 78 +++ .../udf/datastructure/SerializableListTest.java} | 81 ++- .../datastructure/SerializableLongTVListTest.java | 78 +++ .../SerializableRowRecordListTest.java | 143 +++++ .../udf/datastructure/SerializableTVListTest.java} | 79 ++- .../iotdb/db/query/udf/example/Accumulator.java | 82 +++ .../apache/iotdb/db/query/udf/example/Adder.java | 78 +++ .../apache/iotdb/db/query/udf/example/Counter.java | 76 +++ .../iotdb/db/query/udf/example/Multiplier.java | 54 ++ .../SlidingSizeWindowConstructorTester0.java | 53 ++ .../SlidingSizeWindowConstructorTester1.java | 54 ++ .../SlidingTimeWindowConstructionTester.java | 61 +++ .../apache/iotdb/db/utils/EnvironmentUtils.java | 5 + .../apache/iotdb/db/writelog/PerformanceTest.java | 15 +- .../java/org/apache/iotdb/rpc/TSStatusCode.java | 1 - .../java/org/apache/iotdb/session/SessionUT.java | 2 +- site/src/main/.vuepress/config.js | 26 +- .../org/apache/iotdb/tsfile/read/common/Field.java | 4 - .../apache/iotdb/tsfile/read/common/RowRecord.java | 2 +- .../query/dataset/DataSetWithTimeGenerator.java | 4 +- .../query/dataset/DataSetWithoutTimeGenerator.java | 4 +- .../tsfile/read/query/dataset/EmptyDataSet.java | 4 +- .../tsfile/read/query/dataset/QueryDataSet.java | 4 +- .../iotdb/tsfile/utils/ReadWriteIOUtils.java | 11 +- .../iotdb/tsfile/write/writer/TsFileIOWriter.java | 2 +- 177 files changed, 12921 insertions(+), 1529 deletions(-) diff --cc cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConfig.java index cc19a52,3e066d3..05745fd --- a/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConfig.java +++ b/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConfig.java @@@ -56,11 -53,11 +56,11 @@@ public class ClusterConfig private boolean useAsyncApplier = true; - private int connectionTimeoutInMS = 20 * 1000; + private int connectionTimeoutInMS = 20_1000; - private int readOperationTimeoutMS = 30_1000; + private int readOperationTimeoutMS = 30_000; - private int writeOperationTimeoutMS = 30_1000; + private int writeOperationTimeoutMS = 30_000; private int catchUpTimeoutMS = 60_000; diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/service/BaseSyncService.java index bffc345,e1e118f..f9bda1f --- a/cluster/src/main/java/org/apache/iotdb/cluster/server/service/BaseSyncService.java +++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/service/BaseSyncService.java @@@ -102,9 -102,8 +102,8 @@@ public abstract class BaseSyncService i if (client == null) { throw new TException(new LeaderUnknownException(member.getAllNodes())); } - long commitIndex1 = 0; try { - commitIndex1 = client.requestCommitIndex(header, raftId); - commitIndex = client.requestCommitIndex(header); ++ commitIndex = client.requestCommitIndex(header, raftId); } catch (TException e) { client.getInputProtocol().getTransport().close(); throw e;
