You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by yu...@apache.org on 2020/09/07 03:37:36 UTC
[incubator-iotdb] branch cluster_performance updated (08880f9 ->
11ddd3d)
This is an automated email from the ASF dual-hosted git repository.
yuyuankang pushed a change to branch cluster_performance
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git.
from 08880f9 election
add 487a467 async applier refine
add 52ff188 fix the async log applier bug
add 6602e8e add UT
add f794745 remove useless thread pool
add 0d2fbbe support flush plan when do snapshot
add ae1540f refine syncCloseOneProcessor method in StorageGroupProcessor
add ecb1a52 change the log msg
add 1101cfb fix the license
add 3833718 fix the check applir log index
add 7d1fa0d fix checkAppliedLogIndex
add f1071bd fix flushPlan bug
add 261dbfe fix flushPlan bug
add 4e8e25d add more log message
add 162edfb make
add 9624981 Delete the extra blank lines
add 7ae9f80 fix flushplan serialize bug
add 5187c10 fix flushplan serialize bug
add e299193 add flushPlan test
add 4027bba Delete the extra blank lines
add 94b5a10 move syncFlushAllProcessor out of synchronized (logmanager) in
add 5c3f239 make the applyEntries in one seperate thread
add 5ac7bf3 flush the partitions belong to the datagroup and fix some UT
add 8fda671 Merge pull request #1635 from neuyilan/apache_cluster_new_0819_async_applier
add 24f4598 shrink PartitionTable interface & add SlotStrategy
add ea67bf6 add log increment in node report
add c160923 Fix bug that 'List role privileges' cannot apply to root and other issues in doc (#1647)
add ec9ef4f [IOTDB-849] Optimize value filter query (#1651)
add fd6992b [IOTDB-682] C++ client build (#1616)
add 9789c2c Update the master branch for releasing 0.10.1 (#1646)
add 12e1332 Support double quotation in Path and optimize the Path String usage v2 (#1627)
add 4c224bc - Made it possible to load the config from the classpath (#1661)
add 55c2e20 [IOTDB-855] Put back SessionPool resources if RuntimeException occurs (#1663)
add afafc79 [IOTDB-839] Make Tablet api more friendly (#1658)
add 2ec3916 fix a bug which caused delete timeseries unsuccessfully (#1664)
add 2c6e057 resolve grammatical mistake (#1669)
add 76a9aaa [IOTDB-837] ArrayIndexOutOfBoundsException if the measurementId size is not consistent with the value size (#1662)
add 1fc68e7 IoTDB Session Interface Updates(0.9-0.10) (#1672)
add 988deda fix Chinese webpage translation (#1677)
add 1132192 fixed typo (#1674)
add 11323fe modify data manipulation doc (#1678)
add 393a91f [New feature] Add the alias and show it as column name when querying (#1621)
add 4cedb4e Add java doc. (#1681)
add 7eeae49 Reduce unnecessary initialization (#1682)
add 1e48707 fix scheduleWithFixedDelay in wal
add 7e3f820 enlarge force_wal_period_in_ms to 100ms
add a7cfb1e Merge pull request #1679 from apache/real_fix_wal
add c626197 [Sonar] Fix Sonar checking bugs (#1673)
add 545d912 Fix thrift put some unnecessary bytes in a ByteBuffer (#1655)
add b3ea173 add new committer chaow (#1688)
add 82706a7 Merge branch 'master' into cluster_new
new 11ddd3d merge cluster_new
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.gitignore | 8 +
.mvn/wrapper/MavenWrapperDownloader.java | 10 +-
.../org/apache/iotdb/db/qp/strategy/SqlBase.g4 | 102 +-
.../java/org/apache/iotdb/cli/AbstractCli.java | 3 +
.../main/java/org/apache/iotdb/tool/ExportCsv.java | 1 +
.../main/java/org/apache/iotdb/tool/ImportCsv.java | 51 +-
.../PlanExecutor.md => client-cpp/README.md | 8 +-
client-cpp/client-cpp-example/pom.xml | 162 +++
.../client-cpp-example/src/CMakeLists.txt | 20 +-
.../client-cpp-example/src/SessionExample.cpp | 296 +++++
client-cpp/pom.xml | 360 ++++++
client-cpp/src/assembly/client-cpp.xml | 60 +
client-cpp/src/main/CMakeLists.txt | 42 +
client-cpp/src/main/IOTDBSession.cpp | 1018 ++++++++++++++++
client-cpp/src/main/IOTDBSession.h | 633 ++++++++++
client-cpp/src/test/CMakeLists.txt | 41 +
client-cpp/src/test/cpp/sessionIT.cpp | 171 +++
.../src/test/main.cpp | 38 +-
client-py/src/SessionExample.py | 2 +
.../iotdb/cluster/ClusterFileFlushPolicy.java | 13 +-
.../java/org/apache/iotdb/cluster/ClusterMain.java | 39 +
.../cluster/log/applier/AsyncDataLogApplier.java | 11 +-
.../iotdb/cluster/log/applier/BaseApplier.java | 13 +-
.../iotdb/cluster/log/applier/DataLogApplier.java | 23 +-
.../iotdb/cluster/log/catchup/CatchUpTask.java | 1 -
.../iotdb/cluster/log/catchup/LogCatchUpTask.java | 10 +-
.../cluster/log/catchup/SnapshotCatchUpTask.java | 2 -
.../cluster/log/logtypes/PhysicalPlanLog.java | 4 +-
.../cluster/log/manage/CommittedEntryManager.java | 47 +-
.../manage/FilePartitionedSnapshotLogManager.java | 62 +-
.../log/manage/MetaSingleSnapshotLogManager.java | 13 +-
.../log/manage/PartitionedSnapshotLogManager.java | 13 +-
.../iotdb/cluster/log/manage/RaftLogManager.java | 270 ++++-
.../cluster/log/snapshot/MetaSimpleSnapshot.java | 19 +-
.../apache/iotdb/cluster/metadata/CMManager.java | 55 +-
.../apache/iotdb/cluster/metadata/MetaPuller.java | 32 +-
.../cluster/partition/NodeAdditionResult.java | 20 +-
.../iotdb/cluster/partition/NodeRemovalResult.java | 20 +-
.../iotdb/cluster/partition/PartitionTable.java | 47 +-
.../cluster/partition/{ => slot}/SlotManager.java | 19 +-
.../SlotNodeAdditionResult.java} | 18 +-
.../slot/SlotNodeRemovalResult.java} | 19 +-
.../partition/{ => slot}/SlotPartitionTable.java | 51 +-
.../iotdb/cluster/partition/slot/SlotStrategy.java | 36 +
.../cluster/query/ClusterAggregateExecutor.java | 8 +-
.../cluster/query/ClusterConcatPathOptimizer.java | 8 +-
.../cluster/query/ClusterDataQueryExecutor.java | 6 +-
.../cluster/query/ClusterPhysicalGenerator.java | 24 +-
.../iotdb/cluster/query/ClusterPlanExecutor.java | 83 +-
.../iotdb/cluster/query/ClusterPlanRouter.java | 25 +-
.../iotdb/cluster/query/ClusterQueryRouter.java | 4 +-
.../query/dataset/ClusterAlignByDeviceDataSet.java | 12 +-
.../cluster/query/fill/ClusterFillExecutor.java | 6 +-
.../cluster/query/fill/ClusterPreviousFill.java | 5 +-
.../cluster/query/fill/PreviousFillArguments.java | 8 +-
.../iotdb/cluster/query/filter/SlotSgFilter.java | 4 +-
.../cluster/query/filter/SlotTsFileFilter.java | 4 +-
.../groupby/ClusterGroupByNoVFilterDataSet.java | 7 +-
.../groupby/ClusterGroupByVFilterDataSet.java | 7 +-
.../query/groupby/MergeGroupByExecutor.java | 6 +-
.../query/last/ClusterLastQueryExecutor.java | 11 +-
.../cluster/query/reader/ClusterTimeGenerator.java | 6 +-
.../apache/iotdb/cluster/server/ClientServer.java | 10 +-
.../iotdb/cluster/server/DataClusterServer.java | 9 +-
.../apache/iotdb/cluster/server/NodeReport.java | 14 +-
.../server/heartbeat/DataHeartbeatThread.java | 11 +-
.../cluster/server/member/DataGroupMember.java | 202 +++-
.../cluster/server/member/MetaGroupMember.java | 203 ++--
.../iotdb/cluster/server/member/RaftMember.java | 12 +-
.../cluster/server/service/DataAsyncService.java | 7 +-
.../cluster/server/service/DataSyncService.java | 7 +-
.../iotdb/cluster/utils/ClusterQueryUtils.java | 13 +-
.../cluster/utils/nodetool/ClusterMonitor.java | 10 +-
.../org/apache/iotdb/cluster/common/IoTDBTest.java | 28 +-
.../iotdb/cluster/common/TestAsyncDataClient.java | 3 +-
.../iotdb/cluster/common/TestDataGroupMember.java | 2 +-
.../iotdb/cluster/common/TestLogApplier.java | 8 +-
.../cluster/common/TestPartitionedLogManager.java | 5 +-
.../org/apache/iotdb/cluster/common/TestUtils.java | 10 +-
.../apache/iotdb/cluster/log/LogParserTest.java | 7 +-
.../cluster/log/applier/DataLogApplierTest.java | 32 +-
.../cluster/log/applier/MetaLogApplierTest.java | 28 +-
.../iotdb/cluster/log/catchup/CatchUpTaskTest.java | 6 +-
.../cluster/log/logtypes/SerializeLogTest.java | 12 +-
.../FilePartitionedSnapshotLogManagerTest.java | 26 +-
.../manage/MetaSingleSnapshotLogManagerTest.java | 15 +-
.../cluster/log/manage/RaftLogManagerTest.java | 150 ++-
.../iotdb/cluster/partition/SlotManagerTest.java | 14 +-
.../cluster/partition/SlotPartitionTableTest.java | 99 +-
.../apache/iotdb/cluster/query/BaseQueryTest.java | 6 +-
.../query/ClusterAggregateExecutorTest.java | 35 +-
.../query/ClusterDataQueryExecutorTest.java | 8 +-
.../cluster/query/ClusterFillExecutorTest.java | 13 +-
.../query/ClusterPhysicalGeneratorTest.java | 7 +-
.../cluster/query/ClusterPlanExecutorTest.java | 7 +-
.../cluster/query/ClusterQueryRouterTest.java | 43 +-
.../ClusterGroupByNoVFilterDataSetTest.java | 10 +-
.../groupby/ClusterGroupByVFilterDataSetTest.java | 14 +-
.../query/groupby/MergeGroupByExecutorTest.java | 11 +-
.../query/groupby/RemoteGroupByExecutorTest.java | 13 +-
.../query/reader/ClusterTimeGeneratorTest.java | 13 +-
.../handlers/forwarder/ForwardPlanHandlerTest.java | 12 +-
.../server/heartbeat/MetaHeartbeatThreadTest.java | 40 -
.../cluster/server/member/DataGroupMemberTest.java | 107 +-
.../iotdb/cluster/server/member/MemberTest.java | 47 +-
.../cluster/server/member/MetaGroupMemberTest.java | 135 ++-
.../iotdb/cluster/utils/SerializeUtilTest.java | 11 +-
compile-tools/README.md | 147 +++
compile-tools/boost/pom.xml | 141 +++
.../boost/src/assembly/bundle.xml | 30 +-
compile-tools/pom.xml | 121 ++
compile-tools/thrift/pom.xml | 420 +++++++
.../thrift/src/assembly/compiler.xml | 32 +-
compile-tools/thrift/src/assembly/cpp.xml | 51 +
.../thrift/src/assembly/python.xml | 33 +-
.../main/{Dockerfile-0.10.0 => Dockerfile-0.10.1} | 10 +-
docs/Download/README.md | 16 +-
.../SystemDesign/StorageEngine/DataManipulation.md | 10 +-
.../Client/Native API Update(0.9-0.10).md | 196 ++++
.../Concept/Data Model and Terminology.md | 4 +
.../DML Data Manipulation Language.md | 18 +-
docs/UserGuide/Operation Manual/SQL Reference.md | 57 +-
docs/zh/Download/README.md | 16 +-
.../SystemDesign/StorageEngine/DataManipulation.md | 10 +-
.../Client/Native API Update(0.9-0.10).md | 192 +++
.../Concept/Data Model and Terminology.md | 4 +
.../DML Data Manipulation Language.md | 18 +-
.../zh/UserGuide/Operation Manual/SQL Reference.md | 57 +-
docs/zh/UserGuide/Server/Config Manual.md | 2 +-
.../org/apache/iotdb/flink/FlinkIoTDBSink.java | 4 +-
.../apache/iotdb/flink/FlinkTsFileBatchSink.java | 2 +-
.../apache/iotdb/flink/FlinkTsFileBatchSource.java | 2 +-
.../apache/iotdb/flink/FlinkTsFileStreamSink.java | 2 +-
.../iotdb/flink/FlinkTsFileStreamSource.java | 2 +-
.../iotdb/hadoop/tsfile/TSFMRReadExample.java | 3 +-
.../iotdb/hadoop/tsfile/TSMRWriteExample.java | 3 +-
.../apache/iotdb/hadoop/tsfile/TsFileHelper.java | 44 +-
.../main/java/org/apache/iotdb/SessionExample.java | 56 +
.../java/org/apache/iotdb/tsfile/TsFileRead.java | 50 +-
.../apache/iotdb/tsfile/TsFileSequenceRead.java | 137 +--
.../iotdb/tsfile/TsFileWriteWithTSRecord.java | 46 +-
.../java/org/apache/iotdb/flink/IoTDBSink.java | 3 +-
.../iotdb/flink/tsfile/RowTSRecordConverter.java | 5 +-
.../iotdb/flink/tsfile/TsFileInputFormat.java | 19 +-
.../flink/tsfile/RowTsFileConnectorTestBase.java | 2 +-
.../iotdb/hadoop/fileSystem/HDFSConfUtil.java | 3 +-
.../iotdb/hadoop/tsfile/TSFRecordReader.java | 22 +-
.../org/apache/iotdb/hive/TSFHiveRecordReader.java | 1 +
.../org/apache/iotdb/hive/TsFileDeserializer.java | 1 +
.../org/apache/iotdb/jdbc/IoTDBConnection.java | 1 +
.../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java | 2 +-
pom.xml | 17 +
.../resources/conf/iotdb-engine.properties | 2 +-
.../org/apache/iotdb/db/auth/AuthorityChecker.java | 8 +-
.../iotdb/db/auth/role/LocalFileRoleAccessor.java | 4 +
.../iotdb/db/auth/user/LocalFileUserAccessor.java | 4 +
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 21 +-
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 90 +-
.../iotdb/db/conf/adapter/CompressionRatio.java | 4 +-
.../strategy/RandomOnDiskUsableSpaceStrategy.java | 4 +-
.../org/apache/iotdb/db/engine/StorageEngine.java | 218 ++--
.../iotdb/db/engine/flush/TsFileFlushPolicy.java | 2 +-
.../apache/iotdb/db/engine/flush/VmMergeUtils.java | 1 +
.../db/engine/flush/pool/AbstractPoolManager.java | 1 +
.../iotdb/db/engine/memtable/AbstractMemTable.java | 4 +-
.../iotdb/db/engine/merge/manage/MergeContext.java | 8 +-
.../db/engine/merge/manage/MergeResource.java | 16 +-
.../iotdb/db/engine/merge/recover/LogAnalyzer.java | 64 +-
.../iotdb/db/engine/merge/recover/MergeLogger.java | 8 +-
.../engine/merge/selector/IMergePathSelector.java | 4 +-
.../engine/merge/selector/NaivePathSelector.java | 10 +-
.../iotdb/db/engine/merge/task/MergeFileTask.java | 12 +-
.../db/engine/merge/task/MergeMultiChunkTask.java | 23 +-
.../iotdb/db/engine/merge/task/MergeTask.java | 28 +-
.../db/engine/merge/task/RecoverMergeTask.java | 8 +-
.../iotdb/db/engine/modification/Deletion.java | 6 +-
.../iotdb/db/engine/modification/Modification.java | 10 +-
.../db/engine/modification/ModificationFile.java | 3 +-
.../io/LocalTextModificationAccessor.java | 18 +-
.../db/engine/querycontext/QueryDataSource.java | 11 +-
.../engine/storagegroup/StorageGroupProcessor.java | 95 +-
.../db/engine/storagegroup/TsFileProcessor.java | 12 +-
.../db/engine/storagegroup/TsFileResource.java | 44 +-
.../version/SimpleFileVersionController.java | 1 +
.../org/apache/iotdb/db/metadata/MManager.java | 312 ++---
.../java/org/apache/iotdb/db/metadata/MTree.java | 277 +++--
.../org/apache/iotdb/db/metadata/MetaUtils.java | 75 +-
.../org/apache/iotdb/db/metadata/PartialPath.java | 213 ++++
.../org/apache/iotdb/db/metadata/mnode/MNode.java | 45 +-
.../apache/iotdb/db/metrics/server/JettyUtil.java | 4 +-
.../iotdb/db/metrics/server/QueryServlet.java | 2 +-
.../iotdb/db/metrics/server/ServerArgument.java | 37 +-
.../apache/iotdb/db/metrics/ui/MetricsPage.java | 10 +-
.../apache/iotdb/db/monitor/MonitorConstants.java | 11 +-
.../org/apache/iotdb/db/monitor/StatMonitor.java | 16 +-
.../org/apache/iotdb/db/mqtt/PublishHandler.java | 6 +-
.../main/java/org/apache/iotdb/db/qp/Planner.java | 9 +-
.../apache/iotdb/db/qp/constant/DatetimeUtils.java | 14 +-
.../apache/iotdb/db/qp/constant/SQLConstant.java | 24 +-
.../apache/iotdb/db/qp/executor/IPlanExecutor.java | 6 +-
.../apache/iotdb/db/qp/executor/PlanExecutor.java | 236 ++--
.../db/qp/logical/crud/BasicFunctionOperator.java | 10 +-
.../iotdb/db/qp/logical/crud/FilterOperator.java | 26 +-
.../iotdb/db/qp/logical/crud/FromOperator.java | 8 +-
.../iotdb/db/qp/logical/crud/InOperator.java | 10 +-
.../iotdb/db/qp/logical/crud/SFWOperator.java | 6 +-
.../iotdb/db/qp/logical/crud/SelectOperator.java | 15 +-
.../db/qp/logical/sys/AlterTimeSeriesOperator.java | 11 +-
.../iotdb/db/qp/logical/sys/AuthorOperator.java | 8 +-
.../iotdb/db/qp/logical/sys/CountOperator.java | 10 +-
.../qp/logical/sys/CreateTimeSeriesOperator.java | 11 +-
.../db/qp/logical/sys/DeletePartitionOperator.java | 7 +-
.../qp/logical/sys/DeleteStorageGroupOperator.java | 9 +-
.../qp/logical/sys/DeleteTimeSeriesOperator.java | 9 +-
.../iotdb/db/qp/logical/sys/FlushOperator.java | 8 +-
.../db/qp/logical/sys/SetStorageGroupOperator.java | 8 +-
.../iotdb/db/qp/logical/sys/SetTTLOperator.java | 7 +-
.../db/qp/logical/sys/ShowChildPathsOperator.java | 8 +-
.../db/qp/logical/sys/ShowDevicesOperator.java | 8 +-
.../iotdb/db/qp/logical/sys/ShowTTLOperator.java | 8 +-
.../db/qp/logical/sys/ShowTimeSeriesOperator.java | 8 +-
.../apache/iotdb/db/qp/physical/PhysicalPlan.java | 18 +-
.../db/qp/physical/crud/AlignByDevicePlan.java | 17 +-
.../db/qp/physical/crud/DeletePartitionPlan.java | 10 +-
.../iotdb/db/qp/physical/crud/DeletePlan.java | 27 +-
.../iotdb/db/qp/physical/crud/InsertPlan.java | 7 +-
.../iotdb/db/qp/physical/crud/InsertRowPlan.java | 40 +-
.../db/qp/physical/crud/InsertTabletPlan.java | 30 +-
.../iotdb/db/qp/physical/crud/QueryPlan.java | 14 +-
.../db/qp/physical/crud/RawDataQueryPlan.java | 9 +-
.../iotdb/db/qp/physical/crud/UpdatePlan.java | 16 +-
.../db/qp/physical/sys/AlterTimeSeriesPlan.java | 21 +-
.../iotdb/db/qp/physical/sys/AuthorPlan.java | 16 +-
.../iotdb/db/qp/physical/sys/ClearCachePlan.java | 5 +-
.../apache/iotdb/db/qp/physical/sys/CountPlan.java | 9 +-
.../db/qp/physical/sys/CreateSnapshotPlan.java | 5 +-
.../db/qp/physical/sys/CreateTimeSeriesPlan.java | 17 +-
.../iotdb/db/qp/physical/sys/DataAuthPlan.java | 4 +-
.../db/qp/physical/sys/DeleteStorageGroupPlan.java | 21 +-
.../db/qp/physical/sys/DeleteTimeSeriesPlan.java | 21 +-
.../apache/iotdb/db/qp/physical/sys/FlushPlan.java | 182 ++-
.../db/qp/physical/sys/LoadConfigurationPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/LoadDataPlan.java | 9 +-
.../apache/iotdb/db/qp/physical/sys/MergePlan.java | 5 +-
.../iotdb/db/qp/physical/sys/OperateFilePlan.java | 6 +-
.../db/qp/physical/sys/SetStorageGroupPlan.java | 20 +-
.../iotdb/db/qp/physical/sys/SetTTLPlan.java | 23 +-
.../db/qp/physical/sys/ShowChildPathsPlan.java | 8 +-
.../iotdb/db/qp/physical/sys/ShowDevicesPlan.java | 8 +-
.../apache/iotdb/db/qp/physical/sys/ShowPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/ShowTTLPlan.java | 10 +-
.../db/qp/physical/sys/ShowTimeSeriesPlan.java | 15 +-
.../iotdb/db/qp/physical/sys/TracingPlan.java | 4 +-
.../iotdb/db/qp/strategy/LogicalGenerator.java | 194 +--
.../iotdb/db/qp/strategy/PhysicalGenerator.java | 149 ++-
.../qp/strategy/optimizer/ConcatPathOptimizer.java | 117 +-
.../optimizer/MergeSingleFilterOptimizer.java | 17 +-
.../db/query/control/QueryResourceManager.java | 8 +-
.../db/query/dataset/AlignByDeviceDataSet.java | 27 +-
.../apache/iotdb/db/query/dataset/ListDataSet.java | 6 +-
.../db/query/dataset/NonAlignEngineDataSet.java | 24 +-
.../dataset/RawQueryDataSetWithValueFilter.java | 12 +-
.../dataset/RawQueryDataSetWithoutValueFilter.java | 7 +-
.../db/query/dataset/ShowTimeseriesDataSet.java | 5 +-
.../iotdb/db/query/dataset/SingleDataSet.java | 7 +-
.../dataset/groupby/GroupByEngineDataSet.java | 3 +-
.../query/dataset/groupby/GroupByFillDataSet.java | 23 +-
.../query/dataset/groupby/GroupByTimeDataSet.java | 19 +-
.../groupby/GroupByWithValueFilterDataSet.java | 14 +-
.../groupby/GroupByWithoutValueFilterDataSet.java | 23 +-
.../dataset/groupby/LocalGroupByExecutor.java | 14 +-
.../db/query/executor/AggregationExecutor.java | 41 +-
.../iotdb/db/query/executor/FillQueryExecutor.java | 19 +-
.../iotdb/db/query/executor/LastQueryExecutor.java | 47 +-
.../iotdb/db/query/executor/QueryRouter.java | 42 +-
.../db/query/executor/RawDataQueryExecutor.java | 12 +-
.../apache/iotdb/db/query/executor/fill/IFill.java | 4 +-
.../db/query/executor/fill/LastPointReader.java | 7 +-
.../iotdb/db/query/executor/fill/LinearFill.java | 9 +-
.../iotdb/db/query/executor/fill/PreviousFill.java | 11 +-
.../FixLengthIExternalSortFileDeserializer.java | 75 +-
.../chunk/metadata/DiskChunkMetadataLoader.java | 5 +-
.../chunk/metadata/MemChunkMetadataLoader.java | 11 +-
.../query/reader/series/SeriesAggregateReader.java | 9 +-
.../reader/series/SeriesRawDataBatchReader.java | 6 +-
.../iotdb/db/query/reader/series/SeriesReader.java | 11 +-
.../reader/series/SeriesReaderByTimestamp.java | 9 +-
.../query/timegenerator/ServerTimeGenerator.java | 46 +-
...stAllocatorMBean.java => CachedStringPool.java} | 22 +-
.../org/apache/iotdb/db/rescon/MemTablePool.java | 2 +-
.../java/org/apache/iotdb/db/service/IoTDB.java | 2 +-
.../org/apache/iotdb/db/service/TSServiceImpl.java | 342 +++---
.../iotdb/db/sync/receiver/load/FileLoader.java | 12 +-
.../db/sync/receiver/load/FileLoaderManager.java | 1 +
.../receiver/recover/SyncReceiverLogAnalyzer.java | 1 +
.../db/sync/receiver/transfer/SyncServiceImpl.java | 29 +-
.../db/sync/sender/manage/SyncFileManager.java | 18 +-
.../iotdb/db/sync/sender/transfer/SyncClient.java | 8 +-
.../apache/iotdb/db/tools/IoTDBDataDirViewer.java | 12 +-
.../iotdb/db/tools/TsFileResourcePrinter.java | 3 +-
.../apache/iotdb/db/tools/TsFileSketchTool.java | 254 ++--
.../db/tools/upgrade/TsFileOnlineUpgradeTool.java | 1 +
.../db/tools/watermark/WatermarkDetector.java | 94 +-
.../org/apache/iotdb/db/utils/CommonUtils.java | 7 +-
.../org/apache/iotdb/db/utils/FileLoaderUtils.java | 6 +-
.../org/apache/iotdb/db/utils/FilePathUtils.java | 21 +-
.../java/org/apache/iotdb/db/utils/MergeUtils.java | 17 +-
.../org/apache/iotdb/db/utils/OpenFileNumUtil.java | 10 +-
.../apache/iotdb/db/utils/QueryDataSetUtils.java | 2 +
.../java/org/apache/iotdb/db/utils/QueryUtils.java | 25 +-
.../org/apache/iotdb/db/utils/SchemaUtils.java | 48 +-
.../org/apache/iotdb/db/utils/SerializeUtils.java | 2 +-
.../apache/iotdb/db/utils/TypeInferenceUtils.java | 3 +-
.../org/apache/iotdb/db/utils/UpgradeUtils.java | 3 +-
.../iotdb/db/writelog/io/BatchLogReader.java | 3 +-
.../writelog/manager/MultiFileLogNodeManager.java | 36 +-
.../iotdb/db/writelog/recover/LogReplayer.java | 26 +-
.../writelog/recover/TsFileRecoverPerformer.java | 6 +-
.../org/apache/iotdb/db/constant/TestConstant.java | 16 +-
.../iotdb/db/engine/MetadataManagerHelper.java | 43 +-
.../db/engine/cache/ChunkMetadataCacheTest.java | 15 +-
.../iotdb/db/engine/memtable/MemTablePoolTest.java | 1 +
.../apache/iotdb/db/engine/merge/MergeLogTest.java | 3 +-
.../iotdb/db/engine/merge/MergeOverLapTest.java | 21 +-
.../iotdb/db/engine/merge/MergeTaskTest.java | 36 +-
.../apache/iotdb/db/engine/merge/MergeTest.java | 8 +-
.../engine/modification/DeletionFileNodeTest.java | 101 +-
.../db/engine/modification/DeletionQueryTest.java | 139 ++-
.../engine/modification/ModificationFileTest.java | 17 +-
.../io/LocalTextModificationAccessorTest.java | 9 +-
.../storagegroup/FileNodeManagerBenchmark.java | 11 +-
.../storagegroup/StorageGroupProcessorTest.java | 44 +-
.../iotdb/db/engine/storagegroup/TTLTest.java | 71 +-
.../storagegroup/TsFileProcessorEnableVmTest.java | 5 +-
.../engine/storagegroup/TsFileProcessorTest.java | 10 +-
.../version/SysTimeVersionControllerTest.java | 1 +
.../iotdb/db/integration/IoTDBAggregationIT.java | 35 +-
.../integration/IoTDBAggregationLargeDataIT.java | 285 +++--
.../apache/iotdb/db/integration/IoTDBAliasIT.java | 49 +-
.../iotdb/db/integration/IoTDBAlignByDeviceIT.java | 156 +--
.../org/apache/iotdb/db/integration/IoTDBAsIT.java | 603 ++++++++++
.../iotdb/db/integration/IoTDBAuthorizationIT.java | 1234 ++++++++++----------
.../apache/iotdb/db/integration/IoTDBCloseIT.java | 112 +-
.../apache/iotdb/db/integration/IoTDBDaemonIT.java | 28 +-
.../db/integration/IoTDBDeleteStorageGroupIT.java | 14 +-
.../db/integration/IoTDBDeleteTimeseriesIT.java | 64 +-
.../db/integration/IoTDBEngineTimeGeneratorIT.java | 24 +-
.../apache/iotdb/db/integration/IoTDBFillIT.java | 283 ++---
.../db/integration/IoTDBFlushQueryMergeIT.java | 8 +-
.../iotdb/db/integration/IoTDBLargeDataIT.java | 21 +-
.../apache/iotdb/db/integration/IoTDBLastIT.java | 10 +-
.../db/integration/IoTDBLoadExternalTsfileIT.java | 78 +-
.../IoTDBMultiOverlappedChunkInUnseqIT.java | 9 +-
.../db/integration/IoTDBMultiOverlappedPageIT.java | 20 +-
.../iotdb/db/integration/IoTDBMultiSeriesIT.java | 25 +-
.../db/integration/IoTDBMultiStatementsIT.java | 92 +-
.../iotdb/db/integration/IoTDBNumberPathIT.java | 13 +-
.../db/integration/IoTDBOverlappedPageIT.java | 12 +-
.../iotdb/db/integration/IoTDBQuotedPathIT.java | 115 +-
.../iotdb/db/integration/IoTDBRecoverIT.java | 3 +
.../db/integration/IoTDBRemovePartitionIT.java | 16 +-
.../iotdb/db/integration/IoTDBRestartIT.java | 84 +-
.../db/integration/IoTDBSequenceDataQueryIT.java | 51 +-
.../iotdb/db/integration/IoTDBSeriesReaderIT.java | 50 +-
.../iotdb/db/integration/IoTDBSimpleQueryIT.java | 168 +--
.../iotdb/db/integration/IoTDBTagAlterIT.java | 410 ++++---
.../apache/iotdb/db/integration/IoTDBTagIT.java | 622 +++++-----
.../iotdb/db/integration/IoTDBTimeZoneIT.java | 12 +-
.../iotdb/db/metadata/MManagerAdvancedTest.java | 71 +-
.../iotdb/db/metadata/MManagerBasicTest.java | 246 ++--
.../iotdb/db/metadata/MManagerImproveTest.java | 45 +-
.../org/apache/iotdb/db/metadata/MTreeTest.java | 323 ++---
.../apache/iotdb/db/metadata/MetaUtilsTest.java | 62 +
.../apache/iotdb/db/metadata/PartialPathTest.java | 74 ++
.../java/org/apache/iotdb/db/qp/PlannerTest.java | 39 +-
.../iotdb/db/qp/other/TSPlanContextAuthorTest.java | 7 +-
.../iotdb/db/qp/plan/ConcatOptimizerTest.java | 31 +-
.../iotdb/db/qp/plan/LogicalPlanSmallTest.java | 24 +-
.../apache/iotdb/db/qp/plan/PhysicalPlanTest.java | 130 ++-
.../apache/iotdb/db/qp/plan/SerializationTest.java | 81 +-
.../db/query/dataset/GroupByLevelDataSetTest.java | 1 -
.../db/query/dataset/GroupByTimeDataSetTest.java | 1 -
.../reader/series/SeriesAggregateReaderTest.java | 28 +-
.../reader/series/SeriesReaderByTimestampTest.java | 22 +-
.../db/query/reader/series/SeriesReaderTest.java | 29 +-
.../query/reader/series/SeriesReaderTestUtil.java | 22 +-
.../apache/iotdb/db/sql/CheckPathValidityTest.java | 3 +-
.../db/sync/receiver/load/FileLoaderTest.java | 28 +-
.../recover/SyncReceiverLogAnalyzerTest.java | 15 +-
.../db/sync/sender/manage/SyncFileManagerTest.java | 3 +-
.../sender/recover/SyncSenderLogAnalyzerTest.java | 7 +-
.../apache/iotdb/db/tools/IoTDBWatermarkTest.java | 74 +-
.../org/apache/iotdb/db/tools/WalCheckerTest.java | 17 +-
.../apache/iotdb/db/utils/EnvironmentUtils.java | 5 +-
.../iotdb/db/utils/TypeInferenceUtilsTest.java | 7 +-
.../db/utils/datastructure/PrecisionTest.java | 2 +-
.../apache/iotdb/db/writelog/PerformanceTest.java | 26 +-
.../iotdb/db/writelog/WriteLogNodeManagerTest.java | 8 +-
.../apache/iotdb/db/writelog/WriteLogNodeTest.java | 32 +-
.../iotdb/db/writelog/io/LogWriterReaderTest.java | 11 +-
.../db/writelog/io/MultiFileLogReaderTest.java | 6 +-
.../db/writelog/recover/DeviceStringTest.java | 16 +-
.../iotdb/db/writelog/recover/LogReplayerTest.java | 14 +-
.../recover/RecoverResourceFromReaderTest.java | 20 +-
.../db/writelog/recover/SeqTsFileRecoverTest.java | 7 +-
.../writelog/recover/UnseqTsFileRecoverTest.java | 20 +-
.../java/org/apache/iotdb/rpc/IoTDBRpcDataSet.java | 1 +
.../org/apache/iotdb/session/SessionUtils.java | 1 +
.../org/apache/iotdb/session/pool/SessionPool.java | 21 +-
.../org/apache/iotdb/session/IoTDBSessionIT.java | 330 ++++--
site/src/main/.vuepress/config.js | 6 +-
.../theme/global-components/Contributor.vue | 7 +
.../.vuepress/theme/global-components/IoTDB.vue | 4 +-
.../.vuepress/theme/global-components/IoTDBZH.vue | 23 +-
.../iotdb/spark/tsfile/qp/QueryProcessor.java | 2 +
.../qp/optimizer/MergeSingleFilterOptimizer.java | 1 +
.../tsfile/qp/optimizer/PhysicalOptimizer.java | 2 +
.../apache/iotdb/spark/tsfile/DefaultSource.scala | 2 +-
.../iotdb/spark/tsfile/NarrowConverter.scala | 71 +-
.../apache/iotdb/spark/tsfile/WideConverter.scala | 54 +-
thrift/src/main/thrift/rpc.thrift | 32 +-
thrift/src/pypi/README.md | 6 +-
.../tsfile/common/constant/TsFileConstant.java | 3 +-
.../iotdb/tsfile/encoding/encoder/RleEncoder.java | 1 +
.../file/metadata/MetadataIndexConstructor.java | 1 +
.../file/metadata/statistics/Statistics.java | 5 +
.../iotdb/tsfile/read/TsFileSequenceReader.java | 2 +-
.../org/apache/iotdb/tsfile/read/common/Path.java | 202 +---
.../apache/iotdb/tsfile/read/common/TimeRange.java | 11 +-
.../read/controller/MetadataQuerierByFileImpl.java | 2 +
.../query/dataset/DataSetWithoutTimeGenerator.java | 1 +
.../read/query/timegenerator/node/AndNode.java | 1 +
.../iotdb/tsfile/read/reader/page/PageReader.java | 1 +
.../reader/series/FileSeriesReaderByTimestamp.java | 2 +
.../iotdb/tsfile/utils/RamUsageEstimator.java | 1 +
.../apache/iotdb/tsfile/write/record/Tablet.java | 57 +
.../iotdb/tsfile/read/ReadInPartitionTest.java | 22 +-
.../iotdb/tsfile/read/ReadOnlyTsFileTest.java | 20 +-
.../org/apache/iotdb/tsfile/read/ReadTest.java | 59 +-
.../iotdb/tsfile/read/TimePlainEncodeReadTest.java | 71 +-
.../apache/iotdb/tsfile/read/common/PathTest.java | 77 +-
.../tsfile/read/controller/ChunkLoaderTest.java | 2 +-
.../controller/IMetadataQuerierByFileImplTest.java | 16 +-
.../read/filter/IExpressionOptimizerTest.java | 30 +-
.../read/query/executor/QueryExecutorTest.java | 20 +-
.../read/query/timegenerator/ReadWriteTest.java | 8 +-
.../query/timegenerator/ReaderByTimestampTest.java | 2 +-
.../timegenerator/TimeGeneratorReadEmptyTest.java | 8 +-
.../timegenerator/TimeGeneratorReadWriteTest.java | 8 +-
.../query/timegenerator/TimeGeneratorTest.java | 6 +-
.../TsFileGeneratorForSeriesReaderByTimestamp.java | 22 +-
.../tsfile/read/reader/FakedTimeGenerator.java | 8 +-
.../iotdb/tsfile/read/reader/ReaderTest.java | 8 +-
.../apache/iotdb/tsfile/utils/FileGenerator.java | 22 +-
.../apache/iotdb/tsfile/utils/RecordUtilsTest.java | 12 +-
.../iotdb/tsfile/utils/StringContainerTest.java | 5 +-
.../iotdb/tsfile/utils/TsFileGeneratorForTest.java | 101 +-
.../org/apache/iotdb/tsfile/write/PerfTest.java | 78 +-
.../iotdb/tsfile/write/ReadPageInMemTest.java | 16 +-
...SameMeasurementsWithDifferentDataTypesTest.java | 4 +-
.../iotdb/tsfile/write/TsFileReadWriteTest.java | 4 +-
.../iotdb/tsfile/write/TsFileWriterTest.java | 18 +-
.../org/apache/iotdb/tsfile/write/WriteTest.java | 51 +-
.../write/writer/ForceAppendTsFileWriterTest.java | 8 +-
.../write/writer/RestorableTsFileIOWriterTest.java | 83 +-
465 files changed, 14128 insertions(+), 6822 deletions(-)
copy docs/zh/SystemDesign/QueryEngine/PlanExecutor.md => client-cpp/README.md (77%)
create mode 100644 client-cpp/client-cpp-example/pom.xml
copy server/src/assembly/resources/sbin/stop-server.sh => client-cpp/client-cpp-example/src/CMakeLists.txt (70%)
mode change 100755 => 100644
create mode 100644 client-cpp/client-cpp-example/src/SessionExample.cpp
create mode 100644 client-cpp/pom.xml
create mode 100644 client-cpp/src/assembly/client-cpp.xml
create mode 100644 client-cpp/src/main/CMakeLists.txt
create mode 100644 client-cpp/src/main/IOTDBSession.cpp
create mode 100644 client-cpp/src/main/IOTDBSession.h
create mode 100644 client-cpp/src/test/CMakeLists.txt
create mode 100644 client-cpp/src/test/cpp/sessionIT.cpp
copy tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/ChunkGroupMetadata.java => client-cpp/src/test/main.cpp (56%)
rename cluster/src/main/java/org/apache/iotdb/cluster/partition/{ => slot}/SlotManager.java (92%)
copy cluster/src/main/java/org/apache/iotdb/cluster/partition/{NodeAdditionResult.java => slot/SlotNodeAdditionResult.java} (79%)
copy cluster/src/main/java/org/apache/iotdb/cluster/{exception/NotInSameGroupException.java => partition/slot/SlotNodeRemovalResult.java} (62%)
rename cluster/src/main/java/org/apache/iotdb/cluster/partition/{ => slot}/SlotPartitionTable.java (91%)
create mode 100644 cluster/src/main/java/org/apache/iotdb/cluster/partition/slot/SlotStrategy.java
create mode 100644 compile-tools/README.md
create mode 100644 compile-tools/boost/pom.xml
copy site/src/main/deploy.js => compile-tools/boost/src/assembly/bundle.xml (58%)
create mode 100644 compile-tools/pom.xml
create mode 100644 compile-tools/thrift/pom.xml
copy site/src/main/deploy.js => compile-tools/thrift/src/assembly/compiler.xml (53%)
create mode 100644 compile-tools/thrift/src/assembly/cpp.xml
copy site/src/main/deploy.js => compile-tools/thrift/src/assembly/python.xml (53%)
copy docker/src/main/{Dockerfile-0.10.0 => Dockerfile-0.10.1} (79%)
create mode 100644 docs/UserGuide/Client/Native API Update(0.9-0.10).md
create mode 100644 docs/zh/UserGuide/Client/Native API Update(0.9-0.10).md
create mode 100755 server/src/main/java/org/apache/iotdb/db/metadata/PartialPath.java
copy server/src/main/java/org/apache/iotdb/db/rescon/{TVListAllocatorMBean.java => CachedStringPool.java} (62%)
create mode 100644 server/src/test/java/org/apache/iotdb/db/integration/IoTDBAsIT.java
create mode 100644 server/src/test/java/org/apache/iotdb/db/metadata/MetaUtilsTest.java
create mode 100644 server/src/test/java/org/apache/iotdb/db/metadata/PartialPathTest.java
[incubator-iotdb] 01/01: merge cluster_new
Posted by yu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
yuyuankang pushed a commit to branch cluster_performance
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit 11ddd3d46c97c289490e6d75acceaf7c5e70b9e9
Merge: 08880f9 82706a7
Author: Ring-k <yu...@hotmail.com>
AuthorDate: Mon Sep 7 11:37:04 2020 +0800
merge cluster_new
.gitignore | 8 +
.mvn/wrapper/MavenWrapperDownloader.java | 10 +-
.../org/apache/iotdb/db/qp/strategy/SqlBase.g4 | 102 +-
.../java/org/apache/iotdb/cli/AbstractCli.java | 3 +
.../main/java/org/apache/iotdb/tool/ExportCsv.java | 1 +
.../main/java/org/apache/iotdb/tool/ImportCsv.java | 51 +-
client-cpp/README.md | 26 +
client-cpp/client-cpp-example/pom.xml | 162 +++
client-cpp/client-cpp-example/src/CMakeLists.txt | 30 +
.../client-cpp-example/src/SessionExample.cpp | 296 +++++
client-cpp/pom.xml | 360 ++++++
client-cpp/src/assembly/client-cpp.xml | 60 +
client-cpp/src/main/CMakeLists.txt | 42 +
client-cpp/src/main/IOTDBSession.cpp | 1018 ++++++++++++++++
client-cpp/src/main/IOTDBSession.h | 633 ++++++++++
client-cpp/src/test/CMakeLists.txt | 41 +
client-cpp/src/test/cpp/sessionIT.cpp | 171 +++
.../src/test/main.cpp | 44 +-
client-py/src/SessionExample.py | 2 +
.../iotdb/cluster/ClusterFileFlushPolicy.java | 13 +-
.../java/org/apache/iotdb/cluster/ClusterMain.java | 39 +
.../cluster/log/applier/AsyncDataLogApplier.java | 11 +-
.../iotdb/cluster/log/applier/BaseApplier.java | 13 +-
.../iotdb/cluster/log/applier/DataLogApplier.java | 23 +-
.../iotdb/cluster/log/catchup/CatchUpTask.java | 1 -
.../iotdb/cluster/log/catchup/LogCatchUpTask.java | 10 +-
.../cluster/log/catchup/SnapshotCatchUpTask.java | 2 -
.../cluster/log/logtypes/PhysicalPlanLog.java | 4 +-
.../cluster/log/manage/CommittedEntryManager.java | 47 +-
.../manage/FilePartitionedSnapshotLogManager.java | 62 +-
.../log/manage/MetaSingleSnapshotLogManager.java | 13 +-
.../log/manage/PartitionedSnapshotLogManager.java | 13 +-
.../iotdb/cluster/log/manage/RaftLogManager.java | 270 ++++-
.../cluster/log/snapshot/MetaSimpleSnapshot.java | 19 +-
.../apache/iotdb/cluster/metadata/CMManager.java | 55 +-
.../apache/iotdb/cluster/metadata/MetaPuller.java | 32 +-
.../cluster/partition/NodeAdditionResult.java | 20 +-
.../iotdb/cluster/partition/NodeRemovalResult.java | 20 +-
.../iotdb/cluster/partition/PartitionTable.java | 47 +-
.../cluster/partition/{ => slot}/SlotManager.java | 19 +-
.../SlotNodeAdditionResult.java} | 18 +-
.../SlotNodeRemovalResult.java} | 31 +-
.../partition/{ => slot}/SlotPartitionTable.java | 51 +-
.../iotdb/cluster/partition/slot/SlotStrategy.java | 36 +
.../cluster/query/ClusterAggregateExecutor.java | 8 +-
.../cluster/query/ClusterConcatPathOptimizer.java | 8 +-
.../cluster/query/ClusterDataQueryExecutor.java | 6 +-
.../cluster/query/ClusterPhysicalGenerator.java | 24 +-
.../iotdb/cluster/query/ClusterPlanExecutor.java | 83 +-
.../iotdb/cluster/query/ClusterPlanRouter.java | 25 +-
.../iotdb/cluster/query/ClusterQueryRouter.java | 4 +-
.../query/dataset/ClusterAlignByDeviceDataSet.java | 12 +-
.../cluster/query/fill/ClusterFillExecutor.java | 6 +-
.../cluster/query/fill/ClusterPreviousFill.java | 5 +-
.../cluster/query/fill/PreviousFillArguments.java | 8 +-
.../iotdb/cluster/query/filter/SlotSgFilter.java | 4 +-
.../cluster/query/filter/SlotTsFileFilter.java | 4 +-
.../groupby/ClusterGroupByNoVFilterDataSet.java | 7 +-
.../groupby/ClusterGroupByVFilterDataSet.java | 7 +-
.../query/groupby/MergeGroupByExecutor.java | 6 +-
.../query/last/ClusterLastQueryExecutor.java | 11 +-
.../cluster/query/reader/ClusterTimeGenerator.java | 6 +-
.../apache/iotdb/cluster/server/ClientServer.java | 10 +-
.../iotdb/cluster/server/DataClusterServer.java | 9 +-
.../apache/iotdb/cluster/server/NodeReport.java | 14 +-
.../server/heartbeat/DataHeartbeatThread.java | 11 +-
.../cluster/server/member/DataGroupMember.java | 202 +++-
.../cluster/server/member/MetaGroupMember.java | 203 ++--
.../iotdb/cluster/server/member/RaftMember.java | 12 +-
.../cluster/server/service/DataAsyncService.java | 7 +-
.../cluster/server/service/DataSyncService.java | 7 +-
.../iotdb/cluster/utils/ClusterQueryUtils.java | 13 +-
.../cluster/utils/nodetool/ClusterMonitor.java | 10 +-
.../org/apache/iotdb/cluster/common/IoTDBTest.java | 28 +-
.../iotdb/cluster/common/TestAsyncDataClient.java | 3 +-
.../iotdb/cluster/common/TestDataGroupMember.java | 2 +-
.../iotdb/cluster/common/TestLogApplier.java | 8 +-
.../cluster/common/TestPartitionedLogManager.java | 5 +-
.../org/apache/iotdb/cluster/common/TestUtils.java | 10 +-
.../apache/iotdb/cluster/log/LogParserTest.java | 7 +-
.../cluster/log/applier/DataLogApplierTest.java | 32 +-
.../cluster/log/applier/MetaLogApplierTest.java | 28 +-
.../iotdb/cluster/log/catchup/CatchUpTaskTest.java | 6 +-
.../cluster/log/logtypes/SerializeLogTest.java | 12 +-
.../FilePartitionedSnapshotLogManagerTest.java | 26 +-
.../manage/MetaSingleSnapshotLogManagerTest.java | 15 +-
.../cluster/log/manage/RaftLogManagerTest.java | 150 ++-
.../iotdb/cluster/partition/SlotManagerTest.java | 14 +-
.../cluster/partition/SlotPartitionTableTest.java | 99 +-
.../apache/iotdb/cluster/query/BaseQueryTest.java | 6 +-
.../query/ClusterAggregateExecutorTest.java | 35 +-
.../query/ClusterDataQueryExecutorTest.java | 8 +-
.../cluster/query/ClusterFillExecutorTest.java | 13 +-
.../query/ClusterPhysicalGeneratorTest.java | 7 +-
.../cluster/query/ClusterPlanExecutorTest.java | 7 +-
.../cluster/query/ClusterQueryRouterTest.java | 43 +-
.../ClusterGroupByNoVFilterDataSetTest.java | 10 +-
.../groupby/ClusterGroupByVFilterDataSetTest.java | 14 +-
.../query/groupby/MergeGroupByExecutorTest.java | 11 +-
.../query/groupby/RemoteGroupByExecutorTest.java | 13 +-
.../query/reader/ClusterTimeGeneratorTest.java | 13 +-
.../handlers/forwarder/ForwardPlanHandlerTest.java | 12 +-
.../server/heartbeat/MetaHeartbeatThreadTest.java | 40 -
.../cluster/server/member/DataGroupMemberTest.java | 107 +-
.../iotdb/cluster/server/member/MemberTest.java | 47 +-
.../cluster/server/member/MetaGroupMemberTest.java | 135 ++-
.../iotdb/cluster/utils/SerializeUtilTest.java | 11 +-
compile-tools/README.md | 147 +++
compile-tools/boost/pom.xml | 141 +++
compile-tools/boost/src/assembly/bundle.xml | 35 +
compile-tools/pom.xml | 121 ++
compile-tools/thrift/pom.xml | 420 +++++++
compile-tools/thrift/src/assembly/compiler.xml | 37 +
compile-tools/thrift/src/assembly/cpp.xml | 51 +
compile-tools/thrift/src/assembly/python.xml | 38 +
docker/src/main/Dockerfile-0.10.1 | 41 +
docs/Download/README.md | 16 +-
.../SystemDesign/StorageEngine/DataManipulation.md | 10 +-
.../Client/Native API Update(0.9-0.10).md | 196 ++++
.../Concept/Data Model and Terminology.md | 4 +
.../DML Data Manipulation Language.md | 18 +-
docs/UserGuide/Operation Manual/SQL Reference.md | 57 +-
docs/zh/Download/README.md | 16 +-
.../SystemDesign/StorageEngine/DataManipulation.md | 10 +-
.../Client/Native API Update(0.9-0.10).md | 192 +++
.../Concept/Data Model and Terminology.md | 4 +
.../DML Data Manipulation Language.md | 18 +-
.../zh/UserGuide/Operation Manual/SQL Reference.md | 57 +-
docs/zh/UserGuide/Server/Config Manual.md | 2 +-
.../org/apache/iotdb/flink/FlinkIoTDBSink.java | 4 +-
.../apache/iotdb/flink/FlinkTsFileBatchSink.java | 2 +-
.../apache/iotdb/flink/FlinkTsFileBatchSource.java | 2 +-
.../apache/iotdb/flink/FlinkTsFileStreamSink.java | 2 +-
.../iotdb/flink/FlinkTsFileStreamSource.java | 2 +-
.../iotdb/hadoop/tsfile/TSFMRReadExample.java | 3 +-
.../iotdb/hadoop/tsfile/TSMRWriteExample.java | 3 +-
.../apache/iotdb/hadoop/tsfile/TsFileHelper.java | 44 +-
.../main/java/org/apache/iotdb/SessionExample.java | 56 +
.../java/org/apache/iotdb/tsfile/TsFileRead.java | 50 +-
.../apache/iotdb/tsfile/TsFileSequenceRead.java | 137 +--
.../iotdb/tsfile/TsFileWriteWithTSRecord.java | 46 +-
.../java/org/apache/iotdb/flink/IoTDBSink.java | 3 +-
.../iotdb/flink/tsfile/RowTSRecordConverter.java | 5 +-
.../iotdb/flink/tsfile/TsFileInputFormat.java | 19 +-
.../flink/tsfile/RowTsFileConnectorTestBase.java | 2 +-
.../iotdb/hadoop/fileSystem/HDFSConfUtil.java | 3 +-
.../iotdb/hadoop/tsfile/TSFRecordReader.java | 22 +-
.../org/apache/iotdb/hive/TSFHiveRecordReader.java | 1 +
.../org/apache/iotdb/hive/TsFileDeserializer.java | 1 +
.../org/apache/iotdb/jdbc/IoTDBConnection.java | 1 +
.../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java | 2 +-
pom.xml | 17 +
.../resources/conf/iotdb-engine.properties | 2 +-
.../org/apache/iotdb/db/auth/AuthorityChecker.java | 8 +-
.../iotdb/db/auth/role/LocalFileRoleAccessor.java | 4 +
.../iotdb/db/auth/user/LocalFileUserAccessor.java | 4 +
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 21 +-
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 90 +-
.../iotdb/db/conf/adapter/CompressionRatio.java | 4 +-
.../strategy/RandomOnDiskUsableSpaceStrategy.java | 4 +-
.../org/apache/iotdb/db/engine/StorageEngine.java | 218 ++--
.../iotdb/db/engine/flush/TsFileFlushPolicy.java | 2 +-
.../apache/iotdb/db/engine/flush/VmMergeUtils.java | 1 +
.../db/engine/flush/pool/AbstractPoolManager.java | 1 +
.../iotdb/db/engine/memtable/AbstractMemTable.java | 4 +-
.../iotdb/db/engine/merge/manage/MergeContext.java | 8 +-
.../db/engine/merge/manage/MergeResource.java | 16 +-
.../iotdb/db/engine/merge/recover/LogAnalyzer.java | 64 +-
.../iotdb/db/engine/merge/recover/MergeLogger.java | 8 +-
.../engine/merge/selector/IMergePathSelector.java | 4 +-
.../engine/merge/selector/NaivePathSelector.java | 10 +-
.../iotdb/db/engine/merge/task/MergeFileTask.java | 12 +-
.../db/engine/merge/task/MergeMultiChunkTask.java | 23 +-
.../iotdb/db/engine/merge/task/MergeTask.java | 28 +-
.../db/engine/merge/task/RecoverMergeTask.java | 8 +-
.../iotdb/db/engine/modification/Deletion.java | 6 +-
.../iotdb/db/engine/modification/Modification.java | 10 +-
.../db/engine/modification/ModificationFile.java | 3 +-
.../io/LocalTextModificationAccessor.java | 18 +-
.../db/engine/querycontext/QueryDataSource.java | 11 +-
.../engine/storagegroup/StorageGroupProcessor.java | 95 +-
.../db/engine/storagegroup/TsFileProcessor.java | 12 +-
.../db/engine/storagegroup/TsFileResource.java | 44 +-
.../version/SimpleFileVersionController.java | 1 +
.../org/apache/iotdb/db/metadata/MManager.java | 312 ++---
.../java/org/apache/iotdb/db/metadata/MTree.java | 277 +++--
.../org/apache/iotdb/db/metadata/MetaUtils.java | 75 +-
.../org/apache/iotdb/db/metadata/PartialPath.java | 213 ++++
.../org/apache/iotdb/db/metadata/mnode/MNode.java | 45 +-
.../apache/iotdb/db/metrics/server/JettyUtil.java | 4 +-
.../iotdb/db/metrics/server/QueryServlet.java | 2 +-
.../iotdb/db/metrics/server/ServerArgument.java | 37 +-
.../apache/iotdb/db/metrics/ui/MetricsPage.java | 10 +-
.../apache/iotdb/db/monitor/MonitorConstants.java | 11 +-
.../org/apache/iotdb/db/monitor/StatMonitor.java | 16 +-
.../org/apache/iotdb/db/mqtt/PublishHandler.java | 6 +-
.../main/java/org/apache/iotdb/db/qp/Planner.java | 9 +-
.../apache/iotdb/db/qp/constant/DatetimeUtils.java | 14 +-
.../apache/iotdb/db/qp/constant/SQLConstant.java | 24 +-
.../apache/iotdb/db/qp/executor/IPlanExecutor.java | 6 +-
.../apache/iotdb/db/qp/executor/PlanExecutor.java | 236 ++--
.../db/qp/logical/crud/BasicFunctionOperator.java | 10 +-
.../iotdb/db/qp/logical/crud/FilterOperator.java | 26 +-
.../iotdb/db/qp/logical/crud/FromOperator.java | 8 +-
.../iotdb/db/qp/logical/crud/InOperator.java | 10 +-
.../iotdb/db/qp/logical/crud/SFWOperator.java | 6 +-
.../iotdb/db/qp/logical/crud/SelectOperator.java | 15 +-
.../db/qp/logical/sys/AlterTimeSeriesOperator.java | 11 +-
.../iotdb/db/qp/logical/sys/AuthorOperator.java | 8 +-
.../iotdb/db/qp/logical/sys/CountOperator.java | 10 +-
.../qp/logical/sys/CreateTimeSeriesOperator.java | 11 +-
.../db/qp/logical/sys/DeletePartitionOperator.java | 7 +-
.../qp/logical/sys/DeleteStorageGroupOperator.java | 9 +-
.../qp/logical/sys/DeleteTimeSeriesOperator.java | 9 +-
.../iotdb/db/qp/logical/sys/FlushOperator.java | 8 +-
.../db/qp/logical/sys/SetStorageGroupOperator.java | 8 +-
.../iotdb/db/qp/logical/sys/SetTTLOperator.java | 7 +-
.../db/qp/logical/sys/ShowChildPathsOperator.java | 8 +-
.../db/qp/logical/sys/ShowDevicesOperator.java | 8 +-
.../iotdb/db/qp/logical/sys/ShowTTLOperator.java | 8 +-
.../db/qp/logical/sys/ShowTimeSeriesOperator.java | 8 +-
.../apache/iotdb/db/qp/physical/PhysicalPlan.java | 18 +-
.../db/qp/physical/crud/AlignByDevicePlan.java | 17 +-
.../db/qp/physical/crud/DeletePartitionPlan.java | 10 +-
.../iotdb/db/qp/physical/crud/DeletePlan.java | 27 +-
.../iotdb/db/qp/physical/crud/InsertPlan.java | 7 +-
.../iotdb/db/qp/physical/crud/InsertRowPlan.java | 40 +-
.../db/qp/physical/crud/InsertTabletPlan.java | 30 +-
.../iotdb/db/qp/physical/crud/QueryPlan.java | 14 +-
.../db/qp/physical/crud/RawDataQueryPlan.java | 9 +-
.../iotdb/db/qp/physical/crud/UpdatePlan.java | 16 +-
.../db/qp/physical/sys/AlterTimeSeriesPlan.java | 21 +-
.../iotdb/db/qp/physical/sys/AuthorPlan.java | 16 +-
.../iotdb/db/qp/physical/sys/ClearCachePlan.java | 5 +-
.../apache/iotdb/db/qp/physical/sys/CountPlan.java | 9 +-
.../db/qp/physical/sys/CreateSnapshotPlan.java | 5 +-
.../db/qp/physical/sys/CreateTimeSeriesPlan.java | 17 +-
.../iotdb/db/qp/physical/sys/DataAuthPlan.java | 4 +-
.../db/qp/physical/sys/DeleteStorageGroupPlan.java | 21 +-
.../db/qp/physical/sys/DeleteTimeSeriesPlan.java | 21 +-
.../apache/iotdb/db/qp/physical/sys/FlushPlan.java | 182 ++-
.../db/qp/physical/sys/LoadConfigurationPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/LoadDataPlan.java | 9 +-
.../apache/iotdb/db/qp/physical/sys/MergePlan.java | 5 +-
.../iotdb/db/qp/physical/sys/OperateFilePlan.java | 6 +-
.../db/qp/physical/sys/SetStorageGroupPlan.java | 20 +-
.../iotdb/db/qp/physical/sys/SetTTLPlan.java | 23 +-
.../db/qp/physical/sys/ShowChildPathsPlan.java | 8 +-
.../iotdb/db/qp/physical/sys/ShowDevicesPlan.java | 8 +-
.../apache/iotdb/db/qp/physical/sys/ShowPlan.java | 4 +-
.../iotdb/db/qp/physical/sys/ShowTTLPlan.java | 10 +-
.../db/qp/physical/sys/ShowTimeSeriesPlan.java | 15 +-
.../iotdb/db/qp/physical/sys/TracingPlan.java | 4 +-
.../iotdb/db/qp/strategy/LogicalGenerator.java | 194 +--
.../iotdb/db/qp/strategy/PhysicalGenerator.java | 149 ++-
.../qp/strategy/optimizer/ConcatPathOptimizer.java | 117 +-
.../optimizer/MergeSingleFilterOptimizer.java | 17 +-
.../db/query/control/QueryResourceManager.java | 8 +-
.../db/query/dataset/AlignByDeviceDataSet.java | 27 +-
.../apache/iotdb/db/query/dataset/ListDataSet.java | 6 +-
.../db/query/dataset/NonAlignEngineDataSet.java | 24 +-
.../dataset/RawQueryDataSetWithValueFilter.java | 12 +-
.../dataset/RawQueryDataSetWithoutValueFilter.java | 7 +-
.../db/query/dataset/ShowTimeseriesDataSet.java | 5 +-
.../iotdb/db/query/dataset/SingleDataSet.java | 7 +-
.../dataset/groupby/GroupByEngineDataSet.java | 3 +-
.../query/dataset/groupby/GroupByFillDataSet.java | 23 +-
.../query/dataset/groupby/GroupByTimeDataSet.java | 19 +-
.../groupby/GroupByWithValueFilterDataSet.java | 14 +-
.../groupby/GroupByWithoutValueFilterDataSet.java | 23 +-
.../dataset/groupby/LocalGroupByExecutor.java | 14 +-
.../db/query/executor/AggregationExecutor.java | 41 +-
.../iotdb/db/query/executor/FillQueryExecutor.java | 19 +-
.../iotdb/db/query/executor/LastQueryExecutor.java | 47 +-
.../iotdb/db/query/executor/QueryRouter.java | 42 +-
.../db/query/executor/RawDataQueryExecutor.java | 12 +-
.../apache/iotdb/db/query/executor/fill/IFill.java | 4 +-
.../db/query/executor/fill/LastPointReader.java | 7 +-
.../iotdb/db/query/executor/fill/LinearFill.java | 9 +-
.../iotdb/db/query/executor/fill/PreviousFill.java | 11 +-
.../FixLengthIExternalSortFileDeserializer.java | 75 +-
.../chunk/metadata/DiskChunkMetadataLoader.java | 5 +-
.../chunk/metadata/MemChunkMetadataLoader.java | 11 +-
.../query/reader/series/SeriesAggregateReader.java | 9 +-
.../reader/series/SeriesRawDataBatchReader.java | 6 +-
.../iotdb/db/query/reader/series/SeriesReader.java | 11 +-
.../reader/series/SeriesReaderByTimestamp.java | 9 +-
.../query/timegenerator/ServerTimeGenerator.java | 46 +-
.../CachedStringPool.java} | 30 +-
.../org/apache/iotdb/db/rescon/MemTablePool.java | 2 +-
.../java/org/apache/iotdb/db/service/IoTDB.java | 2 +-
.../org/apache/iotdb/db/service/TSServiceImpl.java | 342 +++---
.../iotdb/db/sync/receiver/load/FileLoader.java | 12 +-
.../db/sync/receiver/load/FileLoaderManager.java | 1 +
.../receiver/recover/SyncReceiverLogAnalyzer.java | 1 +
.../db/sync/receiver/transfer/SyncServiceImpl.java | 29 +-
.../db/sync/sender/manage/SyncFileManager.java | 18 +-
.../iotdb/db/sync/sender/transfer/SyncClient.java | 8 +-
.../apache/iotdb/db/tools/IoTDBDataDirViewer.java | 12 +-
.../iotdb/db/tools/TsFileResourcePrinter.java | 3 +-
.../apache/iotdb/db/tools/TsFileSketchTool.java | 254 ++--
.../db/tools/upgrade/TsFileOnlineUpgradeTool.java | 1 +
.../db/tools/watermark/WatermarkDetector.java | 94 +-
.../org/apache/iotdb/db/utils/CommonUtils.java | 7 +-
.../org/apache/iotdb/db/utils/FileLoaderUtils.java | 6 +-
.../org/apache/iotdb/db/utils/FilePathUtils.java | 21 +-
.../java/org/apache/iotdb/db/utils/MergeUtils.java | 17 +-
.../org/apache/iotdb/db/utils/OpenFileNumUtil.java | 10 +-
.../apache/iotdb/db/utils/QueryDataSetUtils.java | 2 +
.../java/org/apache/iotdb/db/utils/QueryUtils.java | 25 +-
.../org/apache/iotdb/db/utils/SchemaUtils.java | 48 +-
.../org/apache/iotdb/db/utils/SerializeUtils.java | 2 +-
.../apache/iotdb/db/utils/TypeInferenceUtils.java | 3 +-
.../org/apache/iotdb/db/utils/UpgradeUtils.java | 3 +-
.../iotdb/db/writelog/io/BatchLogReader.java | 3 +-
.../writelog/manager/MultiFileLogNodeManager.java | 36 +-
.../iotdb/db/writelog/recover/LogReplayer.java | 26 +-
.../writelog/recover/TsFileRecoverPerformer.java | 6 +-
.../org/apache/iotdb/db/constant/TestConstant.java | 16 +-
.../iotdb/db/engine/MetadataManagerHelper.java | 43 +-
.../db/engine/cache/ChunkMetadataCacheTest.java | 15 +-
.../iotdb/db/engine/memtable/MemTablePoolTest.java | 1 +
.../apache/iotdb/db/engine/merge/MergeLogTest.java | 3 +-
.../iotdb/db/engine/merge/MergeOverLapTest.java | 21 +-
.../iotdb/db/engine/merge/MergeTaskTest.java | 36 +-
.../apache/iotdb/db/engine/merge/MergeTest.java | 8 +-
.../engine/modification/DeletionFileNodeTest.java | 101 +-
.../db/engine/modification/DeletionQueryTest.java | 139 ++-
.../engine/modification/ModificationFileTest.java | 17 +-
.../io/LocalTextModificationAccessorTest.java | 9 +-
.../storagegroup/FileNodeManagerBenchmark.java | 11 +-
.../storagegroup/StorageGroupProcessorTest.java | 44 +-
.../iotdb/db/engine/storagegroup/TTLTest.java | 71 +-
.../storagegroup/TsFileProcessorEnableVmTest.java | 5 +-
.../engine/storagegroup/TsFileProcessorTest.java | 10 +-
.../version/SysTimeVersionControllerTest.java | 1 +
.../iotdb/db/integration/IoTDBAggregationIT.java | 35 +-
.../integration/IoTDBAggregationLargeDataIT.java | 285 +++--
.../apache/iotdb/db/integration/IoTDBAliasIT.java | 49 +-
.../iotdb/db/integration/IoTDBAlignByDeviceIT.java | 156 +--
.../org/apache/iotdb/db/integration/IoTDBAsIT.java | 603 ++++++++++
.../iotdb/db/integration/IoTDBAuthorizationIT.java | 1234 ++++++++++----------
.../apache/iotdb/db/integration/IoTDBCloseIT.java | 112 +-
.../apache/iotdb/db/integration/IoTDBDaemonIT.java | 28 +-
.../db/integration/IoTDBDeleteStorageGroupIT.java | 14 +-
.../db/integration/IoTDBDeleteTimeseriesIT.java | 64 +-
.../db/integration/IoTDBEngineTimeGeneratorIT.java | 24 +-
.../apache/iotdb/db/integration/IoTDBFillIT.java | 283 ++---
.../db/integration/IoTDBFlushQueryMergeIT.java | 8 +-
.../iotdb/db/integration/IoTDBLargeDataIT.java | 21 +-
.../apache/iotdb/db/integration/IoTDBLastIT.java | 10 +-
.../db/integration/IoTDBLoadExternalTsfileIT.java | 78 +-
.../IoTDBMultiOverlappedChunkInUnseqIT.java | 9 +-
.../db/integration/IoTDBMultiOverlappedPageIT.java | 20 +-
.../iotdb/db/integration/IoTDBMultiSeriesIT.java | 25 +-
.../db/integration/IoTDBMultiStatementsIT.java | 92 +-
.../iotdb/db/integration/IoTDBNumberPathIT.java | 13 +-
.../db/integration/IoTDBOverlappedPageIT.java | 12 +-
.../iotdb/db/integration/IoTDBQuotedPathIT.java | 115 +-
.../iotdb/db/integration/IoTDBRecoverIT.java | 3 +
.../db/integration/IoTDBRemovePartitionIT.java | 16 +-
.../iotdb/db/integration/IoTDBRestartIT.java | 84 +-
.../db/integration/IoTDBSequenceDataQueryIT.java | 51 +-
.../iotdb/db/integration/IoTDBSeriesReaderIT.java | 50 +-
.../iotdb/db/integration/IoTDBSimpleQueryIT.java | 168 +--
.../iotdb/db/integration/IoTDBTagAlterIT.java | 410 ++++---
.../apache/iotdb/db/integration/IoTDBTagIT.java | 622 +++++-----
.../iotdb/db/integration/IoTDBTimeZoneIT.java | 12 +-
.../iotdb/db/metadata/MManagerAdvancedTest.java | 71 +-
.../iotdb/db/metadata/MManagerBasicTest.java | 246 ++--
.../iotdb/db/metadata/MManagerImproveTest.java | 45 +-
.../org/apache/iotdb/db/metadata/MTreeTest.java | 323 ++---
.../apache/iotdb/db/metadata/MetaUtilsTest.java | 62 +
.../apache/iotdb/db/metadata/PartialPathTest.java | 74 ++
.../java/org/apache/iotdb/db/qp/PlannerTest.java | 39 +-
.../iotdb/db/qp/other/TSPlanContextAuthorTest.java | 7 +-
.../iotdb/db/qp/plan/ConcatOptimizerTest.java | 31 +-
.../iotdb/db/qp/plan/LogicalPlanSmallTest.java | 24 +-
.../apache/iotdb/db/qp/plan/PhysicalPlanTest.java | 130 ++-
.../apache/iotdb/db/qp/plan/SerializationTest.java | 81 +-
.../db/query/dataset/GroupByLevelDataSetTest.java | 1 -
.../db/query/dataset/GroupByTimeDataSetTest.java | 1 -
.../reader/series/SeriesAggregateReaderTest.java | 28 +-
.../reader/series/SeriesReaderByTimestampTest.java | 22 +-
.../db/query/reader/series/SeriesReaderTest.java | 29 +-
.../query/reader/series/SeriesReaderTestUtil.java | 22 +-
.../apache/iotdb/db/sql/CheckPathValidityTest.java | 3 +-
.../db/sync/receiver/load/FileLoaderTest.java | 28 +-
.../recover/SyncReceiverLogAnalyzerTest.java | 15 +-
.../db/sync/sender/manage/SyncFileManagerTest.java | 3 +-
.../sender/recover/SyncSenderLogAnalyzerTest.java | 7 +-
.../apache/iotdb/db/tools/IoTDBWatermarkTest.java | 74 +-
.../org/apache/iotdb/db/tools/WalCheckerTest.java | 17 +-
.../apache/iotdb/db/utils/EnvironmentUtils.java | 5 +-
.../iotdb/db/utils/TypeInferenceUtilsTest.java | 7 +-
.../db/utils/datastructure/PrecisionTest.java | 2 +-
.../apache/iotdb/db/writelog/PerformanceTest.java | 26 +-
.../iotdb/db/writelog/WriteLogNodeManagerTest.java | 8 +-
.../apache/iotdb/db/writelog/WriteLogNodeTest.java | 32 +-
.../iotdb/db/writelog/io/LogWriterReaderTest.java | 11 +-
.../db/writelog/io/MultiFileLogReaderTest.java | 6 +-
.../db/writelog/recover/DeviceStringTest.java | 16 +-
.../iotdb/db/writelog/recover/LogReplayerTest.java | 14 +-
.../recover/RecoverResourceFromReaderTest.java | 20 +-
.../db/writelog/recover/SeqTsFileRecoverTest.java | 7 +-
.../writelog/recover/UnseqTsFileRecoverTest.java | 20 +-
.../java/org/apache/iotdb/rpc/IoTDBRpcDataSet.java | 1 +
.../org/apache/iotdb/session/SessionUtils.java | 1 +
.../org/apache/iotdb/session/pool/SessionPool.java | 21 +-
.../org/apache/iotdb/session/IoTDBSessionIT.java | 330 ++++--
site/src/main/.vuepress/config.js | 6 +-
.../theme/global-components/Contributor.vue | 7 +
.../.vuepress/theme/global-components/IoTDB.vue | 4 +-
.../.vuepress/theme/global-components/IoTDBZH.vue | 23 +-
.../iotdb/spark/tsfile/qp/QueryProcessor.java | 2 +
.../qp/optimizer/MergeSingleFilterOptimizer.java | 1 +
.../tsfile/qp/optimizer/PhysicalOptimizer.java | 2 +
.../apache/iotdb/spark/tsfile/DefaultSource.scala | 2 +-
.../iotdb/spark/tsfile/NarrowConverter.scala | 71 +-
.../apache/iotdb/spark/tsfile/WideConverter.scala | 54 +-
thrift/src/main/thrift/rpc.thrift | 32 +-
thrift/src/pypi/README.md | 6 +-
.../tsfile/common/constant/TsFileConstant.java | 3 +-
.../iotdb/tsfile/encoding/encoder/RleEncoder.java | 1 +
.../file/metadata/MetadataIndexConstructor.java | 1 +
.../file/metadata/statistics/Statistics.java | 5 +
.../iotdb/tsfile/read/TsFileSequenceReader.java | 2 +-
.../org/apache/iotdb/tsfile/read/common/Path.java | 202 +---
.../apache/iotdb/tsfile/read/common/TimeRange.java | 11 +-
.../read/controller/MetadataQuerierByFileImpl.java | 2 +
.../query/dataset/DataSetWithoutTimeGenerator.java | 1 +
.../read/query/timegenerator/node/AndNode.java | 1 +
.../iotdb/tsfile/read/reader/page/PageReader.java | 1 +
.../reader/series/FileSeriesReaderByTimestamp.java | 2 +
.../iotdb/tsfile/utils/RamUsageEstimator.java | 1 +
.../apache/iotdb/tsfile/write/record/Tablet.java | 57 +
.../iotdb/tsfile/read/ReadInPartitionTest.java | 22 +-
.../iotdb/tsfile/read/ReadOnlyTsFileTest.java | 20 +-
.../org/apache/iotdb/tsfile/read/ReadTest.java | 59 +-
.../iotdb/tsfile/read/TimePlainEncodeReadTest.java | 71 +-
.../apache/iotdb/tsfile/read/common/PathTest.java | 77 +-
.../tsfile/read/controller/ChunkLoaderTest.java | 2 +-
.../controller/IMetadataQuerierByFileImplTest.java | 16 +-
.../read/filter/IExpressionOptimizerTest.java | 30 +-
.../read/query/executor/QueryExecutorTest.java | 20 +-
.../read/query/timegenerator/ReadWriteTest.java | 8 +-
.../query/timegenerator/ReaderByTimestampTest.java | 2 +-
.../timegenerator/TimeGeneratorReadEmptyTest.java | 8 +-
.../timegenerator/TimeGeneratorReadWriteTest.java | 8 +-
.../query/timegenerator/TimeGeneratorTest.java | 6 +-
.../TsFileGeneratorForSeriesReaderByTimestamp.java | 22 +-
.../tsfile/read/reader/FakedTimeGenerator.java | 8 +-
.../iotdb/tsfile/read/reader/ReaderTest.java | 8 +-
.../apache/iotdb/tsfile/utils/FileGenerator.java | 22 +-
.../apache/iotdb/tsfile/utils/RecordUtilsTest.java | 12 +-
.../iotdb/tsfile/utils/StringContainerTest.java | 5 +-
.../iotdb/tsfile/utils/TsFileGeneratorForTest.java | 101 +-
.../org/apache/iotdb/tsfile/write/PerfTest.java | 78 +-
.../iotdb/tsfile/write/ReadPageInMemTest.java | 16 +-
...SameMeasurementsWithDifferentDataTypesTest.java | 4 +-
.../iotdb/tsfile/write/TsFileReadWriteTest.java | 4 +-
.../iotdb/tsfile/write/TsFileWriterTest.java | 18 +-
.../org/apache/iotdb/tsfile/write/WriteTest.java | 51 +-
.../write/writer/ForceAppendTsFileWriterTest.java | 8 +-
.../write/writer/RestorableTsFileIOWriterTest.java | 83 +-
465 files changed, 14241 insertions(+), 6809 deletions(-)
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java
index 29de9f0,1b7fdfc..c82ef45
--- a/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/RaftLogManager.java
@@@ -75,13 -109,15 +109,23 @@@ public abstract class RaftLogManager
private int maxNumOfLogsInMem = ClusterDescriptor.getInstance().getConfig()
.getMaxNumOfLogsInMem();
+ /**
+ * Each time new logs are appended, this condition will be notified so logs that have larger
+ * indices but arrived earlier can proceed.
+ */
+ private final Object logUpdateCondition = new Object();
+
+
+ protected int LOG_APPLIER_WAIT_TIME_MS = 10_000;
+
+ protected IOException logApplierWaitTimeOutException = new IOException(
+ "wait all log applied time out");
+
+ private List<Log> blockedUnappliedLogList;
+
+ private ExecutorService logApplierExecutor;
+
++
public RaftLogManager(StableEntryManager stableEntryManager, LogApplier applier, String name) {
this.logApplier = applier;
this.name = name;
@@@ -664,7 -804,90 +818,95 @@@
}
}
++
+ public Object getLogUpdateCondition() {
+ return logUpdateCondition;
+ }
++
+ public void applyAllCommittedLogWhenStartUp() {
+ long lo = maxHaveAppliedCommitIndex;
+ long hi = getCommittedEntryManager().getLastIndex() + 1;
+ if (lo >= hi) {
+ logger.info("{}: the maxHaveAppliedCommitIndex={}, lastIndex={}, no need to reapply",
+ name, maxHaveAppliedCommitIndex, hi);
+ return;
+ }
+
+ List<Log> entries = null;
+ try {
+ entries = new ArrayList<>(getCommittedEntryManager().getEntries(lo, hi));
+ } catch (EntryCompactedException e) {
+ logger.error("{}: apply all committed log failed when get entries", name, e);
+ return;
+ }
+ try {
+ applyEntries(entries, true);
+ } catch (LogExecutionException e) {
+ logger.error("{}: apply all committed log failed", name, e);
+ }
+ }
+
+ public void checkAppliedLogIndex() {
+ while (!Thread.interrupted()) {
+ doCheckAppliedLogIndex();
+ }
+ }
+
+ public void doCheckAppliedLogIndex() {
+ try {
+ long nextToCheckIndex = maxHaveAppliedCommitIndex + 1;
+ if (nextToCheckIndex > commitIndex || nextToCheckIndex > getCommittedEntryManager()
+ .getLastIndex()) {
+ return;
+ }
+ Log log = getCommittedEntryManager().getEntry(nextToCheckIndex);
+ synchronized (log) {
+ while (!log.isApplied()) {
+ // wait until the log is applied
+ try {
+ log.wait();
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ logger.error("{}: do check applied log index is interrupt", name);
+ }
+ return;
+ }
+ maxHaveAppliedCommitIndex = nextToCheckIndex;
+ logger.debug(
+ "{}: log={} is applied, nextToCheckIndex={}, commitIndex={}, maxHaveAppliedCommitIndex={}",
+ name, log, nextToCheckIndex, commitIndex, maxHaveAppliedCommitIndex);
+ }
+ } catch (EntryCompactedException e) {
+ // ignore
+ return;
+ }
+ }
+
+ public long getBlockAppliedCommitIndex() {
+ return blockAppliedCommitIndex;
+ }
+
+ public void setBlockAppliedCommitIndex(long blockAppliedCommitIndex) {
+ this.blockAppliedCommitIndex = blockAppliedCommitIndex;
+ if (blockAppliedCommitIndex < 0) {
+ this.reapplyBlockedLogs();
+ }
+ }
+
+ private void reapplyBlockedLogs() {
+ try {
+ if (blockedUnappliedLogList.size() > 0) {
+ applyEntries(blockedUnappliedLogList, false);
+ logger.info("{}: reapply {} number of logs", name, blockedUnappliedLogList.size());
+ }
+ } catch (LogExecutionException e) {
+ logger.error("{}: reapply blocked log list failed", name, e);
+ } finally {
+ blockedUnappliedLogList.clear();
+ }
+ }
+
+ public String getName() {
+ return name;
+ }
}
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/NodeReport.java
index bb0b3cc,04958ee..0745ca5
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/NodeReport.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/NodeReport.java
@@@ -114,7 -116,7 +116,8 @@@ public class NodeReport
", commitTerm=" + commitTerm +
", readOnly=" + isReadOnly +
", lastHeartbeat=" + (System.currentTimeMillis() - lastHeartbeatReceivedTime) + "ms ago" +
+ ", \n timer: "+ Timer.getReport() +
+ ", logIncrement=" + (lastLogIndex - prevLastLogIndex) +
'}';
}
}
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/DataHeartbeatThread.java
index 5d4ab53,1898b9e..6a23833
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/DataHeartbeatThread.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/heartbeat/DataHeartbeatThread.java
@@@ -51,19 -50,11 +51,20 @@@ public class DataHeartbeatThread extend
*/
@Override
void startElection() {
- electionRequest.setHeader(dataGroupMember.getHeader());
- electionRequest.setLastLogTerm(dataGroupMember.getMetaGroupMember().getLogManager().getLastLogTerm());
- electionRequest.setLastLogIndex(dataGroupMember.getMetaGroupMember().getLogManager().getLastLogIndex());
- electionRequest.setDataLogLastIndex(dataGroupMember.getLogManager().getLastLogIndex());
- electionRequest.setDataLogLastTerm(dataGroupMember.getLogManager().getLastLogTerm());
+ if(dataGroupMember.getThisNode() != dataGroupMember.getHeader()){
+ if(number%4 != 0){
+ number++;
+ return;
+ }else{
+ number = 1;
+ }
+ }
+ electionRequest.setHeader(dataGroupMember.getHeader());
+ electionRequest.setLastLogTerm(dataGroupMember.getMetaGroupMember().getLogManager().getLastLogTerm());
+ electionRequest.setLastLogIndex(dataGroupMember.getMetaGroupMember().getLogManager().getLastLogIndex());
+ electionRequest.setDataLogLastIndex(dataGroupMember.getLogManager().getLastLogIndex());
+ electionRequest.setDataLogLastTerm(dataGroupMember.getLogManager().getLastLogTerm());
++
super.startElection();
}
}
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
index ba29275,82f45f3..af98b40
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
@@@ -95,11 -100,8 +100,9 @@@ import org.apache.iotdb.cluster.server.
import org.apache.iotdb.cluster.server.Peer;
import org.apache.iotdb.cluster.server.PullSnapshotHintService;
import org.apache.iotdb.cluster.server.Response;
+import org.apache.iotdb.cluster.server.Timer;
import org.apache.iotdb.cluster.server.heartbeat.DataHeartbeatThread;
import org.apache.iotdb.cluster.utils.ClusterQueryUtils;
- import org.apache.iotdb.cluster.utils.PartitionUtils;
- import org.apache.iotdb.cluster.utils.nodetool.function.Status;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.engine.StorageEngine;
import org.apache.iotdb.db.engine.modification.ModificationFile;
diff --cc cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
index 4a5305d,cc4b4bf..8964dac
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java
@@@ -181,8 -177,12 +182,16 @@@ public abstract class RaftMember
*/
private final Object snapshotApplyLock = new Object();
++
+ private LogDispatcher logDispatcher;
+
+ /**
+ * lastLogIndex when generating previous member report, to show the log ingestion rate of the
+ * member.
+ */
+ long lastReportedLogIndex;
+
++
public RaftMember() {
}
@@@ -1478,10 -1320,10 +1487,11 @@@
*
* @param request
*/
- public TSStatus executeNonQueryPlan(ExecutNonQueryReq request) throws IOException {
+ public TSStatus executeNonQueryPlan(ExecutNonQueryReq request)
+ throws IOException, IllegalPathException {
// process the plan locally
PhysicalPlan plan = PhysicalPlan.Factory.create(request.planBytes);
+
TSStatus answer = executeNonQuery(plan);
logger.debug("{}: Received a plan {}, executed answer: {}", name, plan, answer);
return answer;