You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by lt...@apache.org on 2019/08/30 12:38:00 UTC
[incubator-iotdb] 01/03: merge master
This is an automated email from the ASF dual-hosted git repository.
lta pushed a commit to branch reimpl_sync
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit 7fe4a072d776d6acb6c62151653da2223a56440c
Merge: eeb1e3c 18ae6c7
Author: lta <li...@163.com>
AuthorDate: Fri Aug 30 10:46:17 2019 +0800
merge master
README.md | 237 ++-------
RELEASE_NOTES.md | 4 +-
client/pom.xml | 1 -
.../src/assembly/resources/sbin/start-client.bat | 2 +-
client/src/assembly/resources/sbin/start-client.sh | 2 +-
client/src/assembly/resources/tools/export-csv.bat | 2 +-
client/src/assembly/resources/tools/export-csv.sh | 2 +-
client/src/assembly/resources/tools/import-csv.bat | 2 +-
client/src/assembly/resources/tools/import-csv.sh | 2 +-
.../iotdb/{cli => }/client/AbstractClient.java | 207 ++++----
.../org/apache/iotdb/{cli => }/client/Client.java | 10 +-
.../apache/iotdb/{cli => }/client/WinClient.java | 6 +-
.../{cli => }/exception/ArgsErrorException.java | 2 +-
.../iotdb/{cli => }/tool/AbstractCsvTool.java | 4 +-
.../org/apache/iotdb/{cli => }/tool/ExportCsv.java | 6 +-
.../org/apache/iotdb/{cli => }/tool/ImportCsv.java | 6 +-
.../iotdb/{cli => }/client/AbstractClientIT.java | 62 ++-
.../iotdb/{cli => }/client/AbstractScript.java | 2 +-
.../{cli => }/client/StartClientScriptIT.java | 2 +-
.../iotdb/{cli => }/tool/ExportCsvTestIT.java | 4 +-
.../iotdb/{cli => }/tool/ImportCsvTestIT.java | 4 +-
docs/Development.md | 4 +-
docs/Documentation-CHN/QuickStart.md | 8 +-
.../UserGuide/1-Overview/3-Scenario.md | 4 +-
.../UserGuide/6-JDBC API/2-Status Code.md | 64 +++
.../UserGuide/7-Session API/1-Session API.md | 105 ++++
.../{7-TsFile => 8-TsFile}/1-Installation.md | 2 +-
.../UserGuide/{7-TsFile => 8-TsFile}/2-Usage.md | 2 +-
.../{7-TsFile => 8-TsFile}/3-Hierarchy.md | 2 +-
.../{8-System Tools => 9-System Tools}/1-Sync.md | 2 +-
.../2-Memory Estimation Tool.md | 2 +-
.../UserGuide/{8-Tools-Cli.md => 9-Tools-Cli.md} | 28 +-
.../{8-Tools-Grafana.md => 9-Tools-Grafana.md} | 0
.../{8-Tools-Hadoop.md => 9-Tools-Hadoop.md} | 0
.../{8-Tools-spark.md => 9-Tools-spark.md} | 0
docs/Documentation/Frequently asked questions.md | 14 +-
docs/Documentation/QuickStart.md | 307 +++---------
docs/Documentation/UserGuide/0-Content.md | 7 +-
.../UserGuide/1-Overview/3-Scenario.md | 4 +-
.../UserGuide/3-Operation Manual/3-Data Import.md | 2 +-
.../4-Deployment and Management/1-Deployment.md | 4 +-
.../6-Data Management.md | 42 +-
.../7-Build and use IoTDB by Dockerfile.md | 6 +-
.../UserGuide/6-JDBC API/1-JDBC API.md | 4 +-
.../UserGuide/6-JDBC API/2-Status Code.md | 64 +++
.../UserGuide/7-Session API/1-Session API.md | 115 +++++
.../{7-TsFile => 8-TsFile}/1-Installation.md | 2 +-
.../UserGuide/{7-TsFile => 8-TsFile}/2-Usage.md | 26 +-
.../{7-TsFile => 8-TsFile}/3-Hierarchy.md | 146 ++++--
.../{8-System Tools => 9-System Tools}/1-Sync.md | 2 +-
.../2-Memory Estimation Tool.md | 2 +-
.../UserGuide/{8-Tools-Cli.md => 9-Tools-Cli.md} | 22 +-
.../{8-Tools-Grafana.md => 9-Tools-Grafana.md} | 0
.../{8-Tools-Hadoop.md => 9-Tools-Hadoop.md} | 0
.../{8-Tools-spark.md => 9-Tools-spark.md} | 0
example/{tsfile => jdbc}/pom.xml | 26 +-
.../main/java/org/apache/iotdb/JDBCExample.java | 76 +++
.../org/apache/iotdb}/PrepareStatementDemo.java | 40 +-
example/pom.xml | 2 +
.../iotdb/{example => rocketmq}/Constant.java | 2 +-
.../{example => rocketmq}/RocketMQConsumer.java | 2 +-
.../{example => rocketmq}/RocketMQProducer.java | 2 +-
.../apache/iotdb/{example => rocketmq}/Utils.java | 2 +-
example/{tsfile => session}/pom.xml | 26 +-
.../main/java/org/apache/iotdb/SessionExample.java | 70 +++
example/tsfile/pom.xml | 9 -
example/tsfile/readme.md | 2 +-
.../iotdb/tsfile/TsFileWriteWithRowBatch.java | 11 +-
.../iotdb/tsfile/hadoop/TSFRecordWriter.java | 6 +-
.../org/apache/iotdb/jdbc/IoTDBConnection.java | 96 +---
.../apache/iotdb/jdbc/IoTDBDatabaseMetadata.java | 32 +-
.../jdbc/IoTDBPreparedInsertionStatement.java | 7 +-
.../apache/iotdb/jdbc/IoTDBPreparedStatement.java | 1 +
.../org/apache/iotdb/jdbc/IoTDBQueryResultSet.java | 22 +-
.../org/apache/iotdb/jdbc/IoTDBSQLException.java | 4 +
.../java/org/apache/iotdb/jdbc/IoTDBStatement.java | 50 +-
.../src/main/java/org/apache/iotdb/jdbc/Utils.java | 25 +-
.../test/java/org/apache/iotdb/jdbc/BatchTest.java | 15 +-
.../org/apache/iotdb/jdbc/IoTDBConnectionTest.java | 15 +-
.../iotdb/jdbc/IoTDBDatabaseMetadataTest.java | 36 +-
.../iotdb/jdbc/IoTDBPreparedStatementTest.java | 15 +-
.../apache/iotdb/jdbc/IoTDBQueryResultSetTest.java | 109 ++--
.../org/apache/iotdb/jdbc/IoTDBStatementTest.java | 22 +-
.../test/java/org/apache/iotdb/jdbc/UtilsTest.java | 19 +-
.../org/apache/iotdb/jdbc/demo/MetadataDemo.java | 36 --
.../org/apache/iotdb/jdbc/demo/StatementDemo.java | 68 ---
pom.xml | 25 +-
.../resources/conf/iotdb-engine.properties | 49 +-
.../tools/print-tsfile-resource-files.bat | 59 ++-
.../resources/tools/print-tsfile-resource-files.sh | 48 +-
.../org/apache/iotdb/db/sql/parse/TSParser.g | 2 +-
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 152 +++++-
.../org/apache/iotdb/db/conf/IoTDBConstant.java | 2 +-
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 36 +-
.../iotdb/db/cost/statistic/Measurement.java | 2 +-
.../apache/iotdb/db/cost/statistic/Operation.java | 3 +-
.../org/apache/iotdb/db/engine/StorageEngine.java | 58 ++-
.../iotdb/db/engine/cache/DeviceMetaDataCache.java | 20 +-
.../iotdb/db/engine/cache/TsFileMetaDataCache.java | 27 +-
.../iotdb/db/engine/cache/TsFileMetadataUtils.java | 17 +-
.../apache/iotdb/db/engine/flush/FlushManager.java | 2 +-
.../iotdb/db/engine/flush/MemTableFlushTask.java | 13 +-
.../iotdb/db/engine/memtable/AbstractMemTable.java | 21 +-
.../apache/iotdb/db/engine/memtable/IMemTable.java | 7 +-
.../db/engine/memtable/IWritableMemChunk.java | 15 +-
.../iotdb/db/engine/memtable/WritableMemChunk.java | 86 +++-
.../iotdb/db/engine/merge/manage/MergeContext.java | 90 ++++
.../iotdb/db/engine/merge/manage/MergeManager.java | 127 +++++
.../db/engine/merge/manage/MergeResource.java | 262 ++++++++++
.../apache/iotdb/db/engine/merge/package-info.java | 11 +-
.../iotdb/db/engine/merge/recover/LogAnalyzer.java | 300 +++++++++++
.../iotdb/db/engine/merge/recover/MergeLogger.java | 132 +++++
.../merge/selector/IFileQueryMemMeasurement.java} | 22 +-
.../engine/merge/selector/IMergeFileSelector.java | 18 +-
.../engine/merge/selector/IMergePathSelector.java | 16 +-
.../merge/selector/MaxFileMergeFileSelector.java | 303 ++++++++++++
.../merge/selector/MaxSeriesMergeFileSelector.java | 108 ++++
.../engine/merge/selector/MergeFileStrategy.java | 15 +-
.../engine/merge/selector/NaivePathSelector.java | 42 +-
.../iotdb/db/engine/merge/task/MergeCallback.java | 27 +-
.../iotdb/db/engine/merge/task/MergeFileTask.java | 238 +++++++++
.../db/engine/merge/task/MergeMultiChunkTask.java | 440 +++++++++++++++++
.../iotdb/db/engine/merge/task/MergeTask.java | 172 +++++++
.../db/engine/merge/task/RecoverMergeTask.java | 268 ++++++++++
.../db/engine/modification/ModificationFile.java | 7 +
.../engine/storagegroup/StorageGroupProcessor.java | 408 ++++++++++++---
.../db/engine/storagegroup/TsFileProcessor.java | 51 +-
.../db/engine/storagegroup/TsFileResource.java | 63 ++-
.../MergeException.java} | 22 +-
.../java/org/apache/iotdb/db/metadata/MGraph.java | 2 -
.../db/qp/executor/IQueryProcessExecutor.java | 7 +
.../iotdb/db/qp/executor/QueryProcessExecutor.java | 37 +-
.../org/apache/iotdb/db/qp/logical/Operator.java | 2 +-
.../iotdb/db/qp/logical/sys/MetadataOperator.java | 8 +-
.../apache/iotdb/db/qp/physical/PhysicalPlan.java | 7 +-
.../iotdb/db/qp/physical/crud/BatchInsertPlan.java | 276 +++++++++++
.../iotdb/db/qp/physical/sys/MetadataPlan.java | 48 +-
.../iotdb/db/qp/strategy/LogicalGenerator.java | 6 +-
.../iotdb/db/qp/strategy/PhysicalGenerator.java | 6 -
.../iotdb/db/query/control/FileReaderManager.java | 77 +--
.../iotdb/db/query/control/JobFileManager.java | 35 +-
.../db/query/control/QueryResourceManager.java | 122 +----
.../groupby/GroupByWithValueFilterDataSet.java | 3 -
.../groupby/GroupByWithoutValueFilterDataSet.java | 1 -
.../db/query/executor/AggregateEngineExecutor.java | 21 +-
.../iotdb/db/query/executor/EngineExecutor.java | 7 -
.../iotdb/db/query/executor/EngineQueryRouter.java | 8 +-
.../db/query/executor/FillEngineExecutor.java | 1 -
.../apache/iotdb/db/query/reader/IPointReader.java | 1 +
...ChunkReader.java => CachedDiskChunkReader.java} | 42 +-
.../query/reader/chunkRelated/DiskChunkReader.java | 1 +
.../fileRelated/UnSealedTsFileIterateReader.java | 6 +-
.../UnSealedTsFileReaderByTimestamp.java | 6 +-
.../CachedUnseqResourceMergeReader.java | 37 +-
.../resourceRelated/SeqResourceIterateReader.java | 9 +-
.../SeqResourceReaderByTimestamp.java | 8 +-
.../resourceRelated/UnseqResourceMergeReader.java | 22 +-
.../UnseqResourceReaderByTimestamp.java | 4 +-
.../universal/CachedPriorityMergeReader.java | 95 ++++
.../reader/universal/PriorityMergeReader.java | 109 ++--
.../org/apache/iotdb/db/rescon/MemTablePool.java | 1 +
.../java/org/apache/iotdb/db/service/IoTDB.java | 6 +-
.../org/apache/iotdb/db/service/JDBCService.java | 3 +-
.../org/apache/iotdb/db/service/ServiceType.java | 3 +-
.../org/apache/iotdb/db/service/TSServiceImpl.java | 414 +++++++++-------
.../iotdb/db/tools/TsFileResourcePrinter.java | 64 +++
.../java/org/apache/iotdb/db/utils/MemUtils.java | 30 +-
.../java/org/apache/iotdb/db/utils/MergeUtils.java | 306 ++++++++++++
.../apache/iotdb/db/utils/QueryDataSetUtils.java | 86 ++++
.../{FileSchemaUtils.java => SchemaUtils.java} | 20 +-
.../apache/iotdb/db/utils/TimeValuePairUtils.java | 100 +++-
.../org/apache/iotdb/db/utils/TsPrimitiveType.java | 54 ++
.../iotdb/db/utils/datastructure/BinaryTVList.java | 31 ++
.../db/utils/datastructure/BooleanTVList.java | 31 ++
.../iotdb/db/utils/datastructure/DoubleTVList.java | 31 ++
.../iotdb/db/utils/datastructure/FloatTVList.java | 31 ++
.../iotdb/db/utils/datastructure/IntTVList.java | 31 ++
.../iotdb/db/utils/datastructure/LongTVList.java | 31 ++
.../iotdb/db/utils/datastructure/TVList.java | 38 ++
.../writelog/manager/MultiFileLogNodeManager.java | 2 +-
.../iotdb/db/writelog/recover/LogReplayer.java | 23 +-
.../writelog/recover/TsFileRecoverPerformer.java | 118 +++--
.../db/cost/statistic/PerformanceStatTest.java | 2 +-
.../db/engine/memtable/MemTableFlushTaskTest.java | 2 +-
.../db/engine/memtable/MemTableTestUtils.java | 10 +-
.../engine/merge/MaxFileMergeFileSelectorTest.java | 85 ++++
.../merge/MaxSeriesMergeFileSelectorTest.java | 103 ++++
.../apache/iotdb/db/engine/merge/MergeLogTest.java | 82 +++
.../iotdb/db/engine/merge/MergePerfTest.java | 105 ++++
.../iotdb/db/engine/merge/MergeTaskTest.java | 233 +++++++++
.../apache/iotdb/db/engine/merge/MergeTest.java | 169 +++++++
.../engine/modification/DeletionFileNodeTest.java | 2 -
.../db/engine/modification/DeletionQueryTest.java | 4 +-
.../storagegroup/StorageGroupProcessorTest.java | 134 ++++-
.../engine/storagegroup/TsFileProcessorTest.java | 10 +-
.../apache/iotdb/db/integration/IOTDBFillIT.java | 202 ++++----
.../iotdb/db/integration/IOTDBGroupByIT.java | 309 +++++-------
.../iotdb/db/integration/IoTDBAggregationIT.java | 478 ++++++++----------
.../integration/IoTDBAggregationLargeDataIT.java | 435 ++++++----------
.../integration/IoTDBAggregationSmallDataIT.java | 549 +++++++++------------
.../iotdb/db/integration/IoTDBCompleteIT.java | 15 +-
.../apache/iotdb/db/integration/IoTDBDaemonIT.java | 216 ++++----
.../iotdb/db/integration/IoTDBDeletionIT.java | 198 ++++----
.../db/integration/IoTDBEngineTimeGeneratorIT.java | 14 +-
.../db/integration/IoTDBFloatPrecisionIT.java | 110 ++---
.../db/integration/IoTDBFlushQueryMergeTest.java | 44 +-
.../iotdb/db/integration/IoTDBLargeDataIT.java | 167 +++----
.../iotdb/db/integration/IoTDBLimitSlimitIT.java | 73 ++-
.../iotdb/db/integration/IoTDBMergeTest.java | 97 ++++
.../iotdb/db/integration/IoTDBMetadataFetchIT.java | 208 ++++----
.../iotdb/db/integration/IoTDBMultiSeriesIT.java | 167 +++----
.../iotdb/db/integration/IoTDBPreparedStmtIT.java | 58 +--
.../db/integration/IoTDBSequenceDataQueryIT.java | 13 +-
.../iotdb/db/integration/IoTDBSeriesReaderIT.java | 19 +-
.../iotdb/db/integration/IoTDBTimeZoneIT.java | 30 +-
.../iotdb/db/integration/IoTDBVersionIT.java | 13 +-
.../apache/iotdb/db/qp/utils/MemIntQpExecutor.java | 6 +
.../db/query/control/FileReaderManagerTest.java | 33 +-
.../fileRelated/UnSealedTsFileReaderTest.java | 6 +-
.../resourceRelated/SeqResourceReaderTest.java | 6 +-
.../resourceRelated/UnseqResourceReaderTest.java | 8 +-
.../iotdb/db/sync/sender/SingleClientSyncTest.java | 2 +-
.../apache/iotdb/db/utils/EnvironmentUtils.java | 2 +-
.../iotdb/db/writelog/IoTDBLogFileSizeTest.java | 59 +--
.../iotdb/db/writelog/recover/LogReplayerTest.java | 25 +-
.../db/writelog/recover/SeqTsFileRecoverTest.java | 38 +-
.../writelog/recover/UnseqTsFileRecoverTest.java | 40 +-
.../2-Usage.md => service-rpc/rpc-changelist.md | 4 +-
.../org/apache/iotdb/rpc/IoTDBRPCException.java | 12 +-
.../main/java/org/apache/iotdb/rpc/RpcUtils.java | 43 ++
.../org/apache/iotdb/rpc/SynchronizedHandler.java | 54 ++
.../java/org/apache/iotdb/rpc/TSStatusType.java | 55 +++
service-rpc/src/main/thrift/rpc.thrift | 92 ++--
{example/tsfile => session}/pom.xml | 37 +-
.../main/java/org/apache/iotdb/session/Config.java | 16 +-
.../iotdb/session/IoTDBSessionException.java | 17 +-
.../java/org/apache/iotdb/session/Session.java | 201 ++++++++
.../org/apache/iotdb/session/SessionUtils.java | 90 ++++
.../apache/iotdb/tsfile/io/TsFileOutputFormat.java | 10 +-
.../apache/iotdb/tsfile/io/TsFileRecordWriter.java | 6 +-
.../scala/org/apache/iotdb/tsfile/Converter.scala | 4 +-
.../org/apache/iotdb/tsfile/HDFSInputTest.java | 4 +-
.../2-Usage.md => tsfile/format-changelist.md | 4 +-
.../iotdb/tsfile/common/conf/TSFileConfig.java | 4 +-
.../iotdb/tsfile/encoding/common/EndianType.java | 2 +-
.../iotdb/tsfile/encoding/decoder/Decoder.java | 6 +-
.../encoding/decoder/DeltaBinaryDecoder.java | 1 +
.../tsfile/encoding/decoder/FloatDecoder.java | 4 +-
.../tsfile/encoding/decoder/PlainDecoder.java | 41 +-
.../encoding/encoder/DeltaBinaryEncoder.java | 9 +-
.../tsfile/encoding/encoder/FloatEncoder.java | 4 +-
.../tsfile/encoding/encoder/PlainEncoder.java | 39 +-
.../tsfile/encoding/encoder/TSEncodingBuilder.java | 6 +-
.../write/TsFileNotCompleteException.java | 21 +-
.../tsfile/file/metadata/ChunkGroupMetaData.java | 2 +-
.../iotdb/tsfile/file/metadata/ChunkMetaData.java | 2 +-
.../iotdb/tsfile/file/metadata/TsDigest.java | 171 +++----
.../iotdb/tsfile/file/metadata/TsFileMetaData.java | 31 ++
.../file/metadata/statistics/BinaryStatistics.java | 70 ++-
.../metadata/statistics/BooleanStatistics.java | 79 ++-
.../file/metadata/statistics/DoubleStatistics.java | 70 ++-
.../file/metadata/statistics/FloatStatistics.java | 68 ++-
.../metadata/statistics/IntegerStatistics.java | 72 +--
.../file/metadata/statistics/LongStatistics.java | 61 ++-
.../file/metadata/statistics/Statistics.java | 20 +-
.../apache/iotdb/tsfile/read/ReadOnlyTsFile.java | 8 +-
.../iotdb/tsfile/read/TsFileSequenceReader.java | 101 +++-
.../apache/iotdb/tsfile/read/common/BatchData.java | 1 +
.../org/apache/iotdb/tsfile/read/common/Chunk.java | 8 +-
.../org/apache/iotdb/tsfile/read/common/Path.java | 2 +-
.../tsfile/read/controller/ChunkLoaderImpl.java | 10 +-
.../{ChunkLoader.java => IChunkLoader.java} | 6 +-
...{MetadataQuerier.java => IMetadataQuerier.java} | 7 +-
.../read/controller/MetadataQuerierByFileImpl.java | 34 +-
.../iotdb/tsfile/read/filter/DigestForFilter.java | 14 +
.../iotdb/tsfile/read/filter/operator/Eq.java | 3 +
.../iotdb/tsfile/read/filter/operator/Gt.java | 3 +
.../iotdb/tsfile/read/filter/operator/GtEq.java | 3 +
.../iotdb/tsfile/read/filter/operator/Lt.java | 3 +
.../iotdb/tsfile/read/filter/operator/LtEq.java | 3 +
.../iotdb/tsfile/read/filter/operator/NotEq.java | 3 +
.../query/executor/ExecutorWithTimeGenerator.java | 10 +-
.../tsfile/read/query/executor/TsFileExecutor.java | 10 +-
.../query/timegenerator/TimeGeneratorImpl.java | 12 +-
.../tsfile/read/reader/chunk/ChunkReader.java | 3 +
.../iotdb/tsfile/read/reader/page/PageReader.java | 3 +-
.../read/reader/series/FileSeriesReader.java | 6 +-
.../reader/series/FileSeriesReaderByTimestamp.java | 6 +-
.../reader/series/FileSeriesReaderWithFilter.java | 20 +-
.../series/FileSeriesReaderWithoutFilter.java | 4 +-
.../org/apache/iotdb/tsfile/utils/BytesUtils.java | 14 +-
.../apache/iotdb/tsfile/write/TsFileWriter.java | 16 +-
.../iotdb/tsfile/write/chunk/ChunkBuffer.java | 15 +-
.../tsfile/write/chunk/ChunkGroupWriterImpl.java | 2 +-
.../iotdb/tsfile/write/chunk/ChunkWriterImpl.java | 11 +-
.../iotdb/tsfile/write/chunk/IChunkWriter.java | 3 +
.../apache/iotdb/tsfile/write/record/RowBatch.java | 47 ++
.../apache/iotdb/tsfile/write/record/TSRecord.java | 2 -
.../tsfile/write/schema/MeasurementSchema.java | 7 +-
.../write/schema/{FileSchema.java => Schema.java} | 35 +-
.../iotdb/tsfile/write/schema/SchemaBuilder.java | 18 +-
.../tsfile/write/writer/DefaultTsFileOutput.java | 21 +-
.../write/writer/ForceAppendTsFileWriter.java | 86 ++++
.../write/writer/RestorableTsFileIOWriter.java | 13 +-
.../iotdb/tsfile/write/writer/TsFileIOWriter.java | 131 ++++-
.../tsfile/encoding/decoder/IntRleDecoderTest.java | 10 +-
.../encoding/decoder/LongRleDecoderTest.java | 6 +-
.../file/metadata/ChunkGroupMetaDataTest.java | 8 +-
.../tsfile/file/metadata/ChunkMetaDataTest.java | 11 +-
.../metadata/statistics/BooleanStatisticsTest.java | 38 +-
.../metadata/statistics/DoubleStatisticsTest.java | 37 +-
.../metadata/statistics/FloatStatisticsTest.java | 23 +-
.../metadata/statistics/IntegerStatisticsTest.java | 7 +-
.../metadata/statistics/LongStatisticsTest.java | 24 +-
.../metadata/statistics/StringStatisticsTest.java | 13 +-
.../tsfile/file/metadata/utils/TestHelper.java | 44 +-
.../iotdb/tsfile/file/metadata/utils/Utils.java | 46 +-
.../iotdb/tsfile/read/ReadInPartitionTest.java | 2 +-
...st.java => IMetadataQuerierByFileImplTest.java} | 2 +-
.../iotdb/tsfile/read/filter/DigestFilterTest.java | 17 +-
.../read/query/executor/QueryExecutorTest.java | 4 +-
.../query/timegenerator/TimeGeneratorTest.java | 4 +-
.../TsFileGeneratorForSeriesReaderByTimestamp.java | 11 +-
.../iotdb/tsfile/read/reader/PageReaderTest.java | 4 +-
.../apache/iotdb/tsfile/utils/FileGenerator.java | 11 +-
.../org/apache/iotdb/tsfile/utils/RecordUtils.java | 4 +-
.../apache/iotdb/tsfile/utils/RecordUtilsTest.java | 27 +-
.../iotdb/tsfile/utils/TsFileGeneratorForTest.java | 6 +-
.../org/apache/iotdb/tsfile/write/PerfTest.java | 23 +-
.../iotdb/tsfile/write/ReadPageInMemTest.java | 23 +-
.../iotdb/tsfile/write/TsFileIOWriterTest.java | 8 +-
.../iotdb/tsfile/write/TsFileReadWriteTest.java | 10 +-
.../org/apache/iotdb/tsfile/write/WriteTest.java | 6 +-
.../write/schema/converter/SchemaBuilderTest.java | 8 +-
.../iotdb/tsfile/write/series/PageWriterTest.java | 6 +-
335 files changed, 10845 insertions(+), 4978 deletions(-)
diff --cc server/src/test/java/org/apache/iotdb/db/sync/sender/SingleClientSyncTest.java
index 4a258a5,23525f3..4340670
--- a/server/src/test/java/org/apache/iotdb/db/sync/sender/SingleClientSyncTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/sync/sender/SingleClientSyncTest.java
@@@ -1,596 -1,559 +1,596 @@@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.sync.sender;
-
-import static org.junit.Assert.fail;
-
-import java.io.File;
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.HashSet;
-import java.util.Set;
-import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.exception.StartupException;
-import org.apache.iotdb.db.exception.SyncConnectionException;
-import org.apache.iotdb.db.integration.Constant;
-import org.apache.iotdb.db.service.IoTDB;
-import org.apache.iotdb.db.sync.conf.Constans;
-import org.apache.iotdb.db.sync.conf.SyncSenderConfig;
-import org.apache.iotdb.db.sync.conf.SyncSenderDescriptor;
-import org.apache.iotdb.db.utils.EnvironmentUtils;
-import org.apache.iotdb.jdbc.Config;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The test is to run a complete sync function Before you run the test, make sure receiver has been
- * cleaned up and inited.
- */
-public class SingleClientSyncTest {
-
- SyncSenderImpl fileSenderImpl = SyncSenderImpl.getInstance();
- private IoTDBConfig conf = IoTDBDescriptor.getInstance().getConfig();
- private String serverIpTest = "192.168.130.7";
- private SyncSenderConfig config = SyncSenderDescriptor.getInstance().getConfig();
- private Set<String> dataSender = new HashSet<>();
- private Set<String> dataReceiver = new HashSet<>();
- private boolean success = true;
- private IoTDB deamon;
- private static final String[] sqls1 = new String[]{"SET STORAGE GROUP TO root.vehicle",
- "SET STORAGE GROUP TO root.test",
- "CREATE TIMESERIES root.vehicle.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
- "CREATE TIMESERIES root.vehicle.d0.s1 WITH DATATYPE=TEXT, ENCODING=PLAIN",
- "CREATE TIMESERIES root.vehicle.d1.s2 WITH DATATYPE=FLOAT, ENCODING=RLE",
- "CREATE TIMESERIES root.vehicle.d1.s3 WITH DATATYPE=BOOLEAN, ENCODING=PLAIN",
- "CREATE TIMESERIES root.test.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
- "CREATE TIMESERIES root.test.d0.s1 WITH DATATYPE=TEXT, ENCODING=PLAIN",
- "CREATE TIMESERIES root.test.d1.g0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
- "insert into root.vehicle.d0(timestamp,s0) values(10,100)",
- "insert into root.vehicle.d0(timestamp,s0,s1) values(12,101,'102')",
- "insert into root.vehicle.d0(timestamp,s1) values(19,'103')",
- "insert into root.vehicle.d1(timestamp,s2) values(11,104.0)",
- "insert into root.vehicle.d1(timestamp,s2,s3) values(15,105.0,true)",
- "insert into root.vehicle.d1(timestamp,s3) values(17,false)",
- "insert into root.vehicle.d0(timestamp,s0) values(20,1000)",
- "insert into root.vehicle.d0(timestamp,s0,s1) values(22,1001,'1002')",
- "insert into root.vehicle.d0(timestamp,s1) values(29,'1003')",
- "insert into root.vehicle.d1(timestamp,s2) values(21,1004.0)",
- "insert into root.vehicle.d1(timestamp,s2,s3) values(25,1005.0,true)",
- "insert into root.vehicle.d1(timestamp,s3) values(27,true)",
- "insert into root.test.d0(timestamp,s0) values(10,106)",
- "insert into root.test.d0(timestamp,s0,s1) values(14,107,'108')",
- "insert into root.test.d0(timestamp,s1) values(16,'109')",
- "insert into root.test.d1.g0(timestamp,s0) values(1,110)",
- "insert into root.test.d0(timestamp,s0) values(30,1006)",
- "insert into root.test.d0(timestamp,s0,s1) values(34,1007,'1008')",
- "insert into root.test.d0(timestamp,s1) values(36,'1090')",
- "insert into root.test.d1.g0(timestamp,s0) values(10,1100)", "merge", "flush",};
- private static final String[] sqls2 = new String[]{
- "insert into root.vehicle.d0(timestamp,s0) values(6,120)",
- "insert into root.vehicle.d0(timestamp,s0,s1) values(38,121,'122')",
- "insert into root.vehicle.d0(timestamp,s1) values(9,'123')",
- "insert into root.vehicle.d0(timestamp,s0) values(16,128)",
- "insert into root.vehicle.d0(timestamp,s0,s1) values(18,189,'198')",
- "insert into root.vehicle.d0(timestamp,s1) values(99,'1234')",
- "insert into root.vehicle.d1(timestamp,s2) values(14,1024.0)",
- "insert into root.vehicle.d1(timestamp,s2,s3) values(29,1205.0,true)",
- "insert into root.vehicle.d1(timestamp,s3) values(33,true)",
- "insert into root.test.d0(timestamp,s0) values(15,126)",
- "insert into root.test.d0(timestamp,s0,s1) values(8,127,'128')",
- "insert into root.test.d0(timestamp,s1) values(20,'129')",
- "insert into root.test.d1.g0(timestamp,s0) values(14,430)",
- "insert into root.test.d0(timestamp,s0) values(150,426)",
- "insert into root.test.d0(timestamp,s0,s1) values(80,427,'528')",
- "insert into root.test.d0(timestamp,s1) values(2,'1209')",
- "insert into root.test.d1.g0(timestamp,s0) values(4,330)", "merge", "flush",};
- private static final String[] sqls3 = new String[]{"SET STORAGE GROUP TO root.iotdb",
- "SET STORAGE GROUP TO root.flush",
- "CREATE TIMESERIES root.iotdb.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
- "CREATE TIMESERIES root.iotdb.d0.s1 WITH DATATYPE=TEXT, ENCODING=PLAIN",
- "CREATE TIMESERIES root.iotdb.d1.s2 WITH DATATYPE=FLOAT, ENCODING=RLE",
- "CREATE TIMESERIES root.iotdb.d1.s3 WITH DATATYPE=BOOLEAN, ENCODING=PLAIN",
- "CREATE TIMESERIES root.flush.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
- "CREATE TIMESERIES root.flush.d0.s1 WITH DATATYPE=TEXT, ENCODING=PLAIN",
- "CREATE TIMESERIES root.flush.d1.g0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
- "insert into root.iotdb.d0(timestamp,s0) values(3,100)",
- "insert into root.iotdb.d0(timestamp,s0,s1) values(22,101,'102')",
- "insert into root.iotdb.d0(timestamp,s1) values(24,'103')",
- "insert into root.iotdb.d1(timestamp,s2) values(21,104.0)",
- "insert into root.iotdb.d1(timestamp,s2,s3) values(25,105.0,true)",
- "insert into root.iotdb.d1(timestamp,s3) values(27,false)",
- "insert into root.iotdb.d0(timestamp,s0) values(30,1000)",
- "insert into root.iotdb.d0(timestamp,s0,s1) values(202,101,'102')",
- "insert into root.iotdb.d0(timestamp,s1) values(44,'103')",
- "insert into root.iotdb.d1(timestamp,s2) values(1,404.0)",
- "insert into root.iotdb.d1(timestamp,s2,s3) values(250,10.0,true)",
- "insert into root.iotdb.d1(timestamp,s3) values(207,false)",
- "insert into root.flush.d0(timestamp,s0) values(20,106)",
- "insert into root.flush.d0(timestamp,s0,s1) values(14,107,'108')",
- "insert into root.flush.d1.g0(timestamp,s0) values(1,110)",
- "insert into root.flush.d0(timestamp,s0) values(200,1006)",
- "insert into root.flush.d0(timestamp,s0,s1) values(1004,1007,'1080')",
- "insert into root.flush.d1.g0(timestamp,s0) values(1000,910)",
- "insert into root.vehicle.d0(timestamp,s0) values(209,130)",
- "insert into root.vehicle.d0(timestamp,s0,s1) values(206,131,'132')",
- "insert into root.vehicle.d0(timestamp,s1) values(70,'33')",
- "insert into root.vehicle.d1(timestamp,s2) values(204,14.0)",
- "insert into root.vehicle.d1(timestamp,s2,s3) values(29,135.0,false)",
- "insert into root.vehicle.d1(timestamp,s3) values(14,false)",
- "insert into root.test.d0(timestamp,s0) values(19,136)",
- "insert into root.test.d0(timestamp,s0,s1) values(7,137,'138')",
- "insert into root.test.d0(timestamp,s1) values(30,'139')",
- "insert into root.test.d1.g0(timestamp,s0) values(4,150)",
- "insert into root.test.d0(timestamp,s0) values(1900,1316)",
- "insert into root.test.d0(timestamp,s0,s1) values(700,1307,'1038')",
- "insert into root.test.d0(timestamp,s1) values(3000,'1309')",
- "insert into root.test.d1.g0(timestamp,s0) values(400,1050)", "merge", "flush",};
- private boolean testFlag = Constant.testFlag;
- private static final String SYNC_CLIENT = Constans.SYNC_CLIENT;
- private static final Logger logger = LoggerFactory.getLogger(SingleClientSyncTest.class);
-
- public static void main(String[] args) throws Exception {
- SingleClientSyncTest singleClientPostBackTest = new SingleClientSyncTest();
- singleClientPostBackTest.setUp();
- singleClientPostBackTest.testPostback();
- singleClientPostBackTest.tearDown();
- System.exit(0);
- }
-
- public void setConfig() {
- config.setUuidPath(
- config.getDataDirectory() + SYNC_CLIENT + File.separator + Constans.UUID_FILE_NAME);
- config.setLastFileInfo(
- config.getDataDirectory() + SYNC_CLIENT + File.separator + Constans.LAST_LOCAL_FILE_NAME);
- String[] sequenceFileDirectory = config.getSeqFileDirectory();
- String[] snapshots = new String[config.getSeqFileDirectory().length];
- for (int i = 0; i < config.getSeqFileDirectory().length; i++) {
- sequenceFileDirectory[i] = new File(sequenceFileDirectory[i]).getAbsolutePath();
- if (!sequenceFileDirectory[i].endsWith(File.separator)) {
- sequenceFileDirectory[i] = sequenceFileDirectory[i] + File.separator;
- }
- snapshots[i] =
- sequenceFileDirectory[i] + SYNC_CLIENT + File.separator + Constans.DATA_SNAPSHOT_NAME
- + File.separator;
- }
- config.setSnapshotPaths(snapshots);
- config.setSeqFileDirectory(sequenceFileDirectory);
- config.setServerIp(serverIpTest);
- fileSenderImpl.setConfig(config);
- }
-
- public void setUp() throws StartupException, IOException {
- if (testFlag) {
- EnvironmentUtils.closeStatMonitor();
- deamon = IoTDB.getInstance();
- deamon.active();
- EnvironmentUtils.envSetUp();
- }
- setConfig();
- }
-
- public void tearDown() throws Exception {
- if (testFlag) {
- deamon.stop();
- EnvironmentUtils.cleanEnv();
- }
- if (success) {
- logger.debug("Test succeed!");
- } else {
- logger.debug("Test failed!");
- }
- }
-
- public void testPostback() throws IOException, SyncConnectionException, ClassNotFoundException, SQLException, InterruptedException {
- if (testFlag) {
- // the first time to sync
- logger.debug("It's the first time to sync!");
- try {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection = DriverManager
- .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root",
- "root");
- Statement statement = connection.createStatement()) {
- for (String sql : sqls1) {
- statement.execute(sql);
- }
- }
- } catch (SQLException | ClassNotFoundException e) {
- fail(e.getMessage());
- }
-
- fileSenderImpl.sync();
-
- // Compare data of sender and receiver
- dataSender.clear();
- try {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection = DriverManager
- .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root",
- "root");
- Statement statement = connection.createStatement()) {
- boolean hasResultSet = statement.execute("select * from root.vehicle");
- if (hasResultSet) {
- ResultSet res = statement.getResultSet();
- while (res.next()) {
- dataSender.add(res.getString("Time") + res.getString("root.vehicle.d0.s0")
- + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
- + res.getString("root.vehicle.d1.s3"));
- logger.debug(res.getString("Time") + " | " + res.getString("root.vehicle.d0.s0")
- + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
- + res.getString("root.vehicle.d1.s3"));
- }
- }
- hasResultSet = statement.execute("select * from root.test");
- if (hasResultSet) {
- ResultSet res = statement.getResultSet();
- while (res.next()) {
- dataSender.add(res.getString("Time") + res.getString("root.test.d0.s0")
- + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
- logger.debug(res.getString("Time") + " | " + res.getString("root.test.d0.s0")
- + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
- }
- }
- } catch (Exception e) {
- logger.error("", e);
- }
- } catch (ClassNotFoundException e) {
- fail(e.getMessage());
- Thread.currentThread().interrupt();
- }
-
- dataReceiver.clear();
- try {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection = DriverManager
- .getConnection(String.format("jdbc:iotdb://%s:6667/", serverIpTest), "root",
- "root");
- Statement statement = connection.createStatement()) {
-
- boolean hasResultSet = statement.execute("select * from root.vehicle");
- if (hasResultSet) {
- ResultSet res = statement.getResultSet();
- while (res.next()) {
- dataReceiver.add(res.getString("Time") + res.getString("root.vehicle.d0.s0")
- + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
- + res.getString("root.vehicle.d1.s3"));
- logger.debug(res.getString("Time") + " | " + res.getString("root.vehicle.d0.s0")
- + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
- + res.getString("root.vehicle.d1.s3"));
- }
- }
-
- hasResultSet = statement.execute("select * from root.test");
- if (hasResultSet) {
- ResultSet res = statement.getResultSet();
- while (res.next()) {
- dataReceiver.add(res.getString("Time") + res.getString("root.test.d0.s0")
- + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
- logger.debug(res.getString("Time") + " | " + res.getString("root.test.d0.s0")
- + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
- }
- }
- } catch (Exception e) {
- logger.error("", e);
- }
- } catch (ClassNotFoundException e) {
- fail(e.getMessage());
- Thread.currentThread().interrupt();
- }
- logger.debug(String.valueOf(dataSender.size()));
- logger.debug(String.valueOf(dataReceiver.size()));
- logger.debug(dataSender.toString());
- logger.debug(dataReceiver.toString());
- if (!(dataSender.size() == dataReceiver.size() && dataSender.containsAll(dataReceiver))) {
- success = false;
- return;
- }
-
- // the second time to sync
- logger.debug("It's the second time to sync!");
- try {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection = DriverManager
- .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root",
- "root");
- Statement statement = connection.createStatement()) {
- for (String sql : sqls2) {
- statement.execute(sql);
- }
- } catch (Exception e) {
- logger.error("", e);
- }
- } catch (ClassNotFoundException e) {
- fail(e.getMessage());
- Thread.currentThread().interrupt();
- }
-
- fileSenderImpl.sync();
-
- // Compare data of sender and receiver
- dataSender.clear();
- try {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection = DriverManager
- .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root",
- "root");
- Statement statement = connection.createStatement()) {
- boolean hasResultSet = statement.execute("select * from root.vehicle");
- if (hasResultSet) {
- ResultSet res = statement.getResultSet();
- while (res.next()) {
- dataSender.add(res.getString("Time") + res.getString("root.vehicle.d0.s0")
- + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
- + res.getString("root.vehicle.d1.s3"));
- logger.debug(res.getString("Time") + " | " + res.getString("root.vehicle.d0.s0")
- + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
- + res.getString("root.vehicle.d1.s3"));
- }
- }
- hasResultSet = statement.execute("select * from root.test");
- if (hasResultSet) {
- ResultSet res = statement.getResultSet();
- while (res.next()) {
- dataSender.add(res.getString("Time") + res.getString("root.test.d0.s0")
- + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
- logger.debug(res.getString("Time") + " | " + res.getString("root.test.d0.s0")
- + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
- }
- }
- } catch (Exception e) {
- logger.error("", e);
- }
- } catch (ClassNotFoundException e) {
- fail(e.getMessage());
- Thread.currentThread().interrupt();
- }
-
- dataReceiver.clear();
- {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection = DriverManager
- .getConnection(String.format("jdbc:iotdb://%s:6667/", serverIpTest), "root",
- "root")) {
- Statement statement = connection.createStatement();
- boolean hasResultSet = statement.execute("select * from root.vehicle");
- if (hasResultSet) {
- ResultSet res = statement.getResultSet();
- while (res.next()) {
- dataReceiver.add(res.getString("Time") + res.getString("root.vehicle.d0.s0")
- + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
- + res.getString("root.vehicle.d1.s3"));
- logger.debug(res.getString("Time") + " | " + res.getString("root.vehicle.d0.s0")
- + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
- + res.getString("root.vehicle.d1.s3"));
- }
- }
- hasResultSet = statement.execute("select * from root.test");
- if (hasResultSet) {
- ResultSet res = statement.getResultSet();
- while (res.next()) {
- dataReceiver.add(res.getString("Time") + res.getString("root.test.d0.s0")
- + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
- logger.debug(res.getString("Time") + " | " + res.getString("root.test.d0.s0")
- + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
- }
- }
- statement.close();
- } catch (Exception e) {
- logger.error("", e);
- }
- }
- logger.debug(String.valueOf(dataSender.size()));
- logger.debug(String.valueOf(dataReceiver.size()));
- logger.debug(dataSender.toString());
- logger.debug(dataReceiver.toString());
- if (!(dataSender.size() == dataReceiver.size() && dataSender.containsAll(dataReceiver))) {
- success = false;
- return;
- }
-
- // the third time to sync
- logger.debug("It's the third time to sync!");
- try {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection = DriverManager
- .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root",
- "root");
- Statement statement = connection.createStatement()) {
- for (String sql : sqls3) {
- statement.execute(sql);
- }
- } catch (Exception e) {
- logger.error("", e);
- }
- } catch (ClassNotFoundException e) {
- fail(e.getMessage());
- Thread.currentThread().interrupt();
- }
-
- fileSenderImpl.sync();
-
- // Compare data of sender and receiver
- dataSender.clear();
- try {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection = DriverManager
- .getConnection(String.format("jdbc:iotdb://%s:6667/", serverIpTest), "root",
- "root");
- Statement statement = connection.createStatement()) {
- boolean hasResultSet = statement.execute("select * from root.vehicle");
- if (hasResultSet) {
- ResultSet res = statement.getResultSet();
- while (res.next()) {
- dataSender.add(res.getString("Time") + res.getString("root.vehicle.d0.s0")
- + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
- + res.getString("root.vehicle.d1.s3"));
- logger.debug(res.getString("Time") + " | " + res.getString("root.vehicle.d0.s0")
- + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
- + res.getString("root.vehicle.d1.s3"));
- }
- }
- hasResultSet = statement.execute("select * from root.test");
- if (hasResultSet) {
- ResultSet res = statement.getResultSet();
- while (res.next()) {
- dataSender.add(res.getString("Time") + res.getString("root.test.d0.s0")
- + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
- logger.debug(res.getString("Time") + " | " + res.getString("root.test.d0.s0")
- + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
- }
- }
- hasResultSet = statement.execute("select * from root.flush");
- if (hasResultSet) {
- ResultSet res = statement.getResultSet();
- while (res.next()) {
- dataSender.add(res.getString("Time") + res.getString("root.flush.d0.s0")
- + res.getString("root.flush.d0.s1") + res.getString("root.flush.d1.g0.s0"));
- logger.debug(res.getString("Time") + " | " + res.getString("root.flush.d0.s0")
- + res.getString("root.flush.d0.s1") + res.getString("root.flush.d1.g0.s0"));
- }
- }
- hasResultSet = statement.execute("select * from root.iotdb");
- if (hasResultSet) {
- ResultSet res = statement.getResultSet();
- while (res.next()) {
- dataSender.add(res.getString("Time") + res.getString("root.iotdb.d0.s0")
- + res.getString("root.iotdb.d0.s1") + res.getString("root.iotdb.d1.s2")
- + res.getString("root.iotdb.d1.s3"));
- logger.debug(res.getString("Time") + res.getString("root.iotdb.d0.s0")
- + res.getString("root.iotdb.d0.s1") + res.getString("root.iotdb.d1.s2")
- + res.getString("root.iotdb.d1.s3"));
- }
- }
- } catch (Exception e) {
- logger.error("", e);
- }
- } catch (ClassNotFoundException e) {
- fail(e.getMessage());
- Thread.currentThread().interrupt();
- }
-
- dataReceiver.clear();
- try {
- Class.forName(Config.JDBC_DRIVER_NAME);
- try (Connection connection = DriverManager
- .getConnection("jdbc:iotdb://192.168.130.8:6667/", "root", "root")) {
- Statement statement = connection.createStatement();
- boolean hasResultSet = statement.execute("select * from root.vehicle");
- if (hasResultSet) {
- ResultSet res = statement.getResultSet();
- while (res.next()) {
- dataReceiver.add(res.getString("Time") + res.getString("root.vehicle.d0.s0")
- + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
- + res.getString("root.vehicle.d1.s3"));
- logger.debug(res.getString("Time") + " | " + res.getString("root.vehicle.d0.s0")
- + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
- + res.getString("root.vehicle.d1.s3"));
- }
- }
- hasResultSet = statement.execute("select * from root.test");
- if (hasResultSet) {
- ResultSet res = statement.getResultSet();
- while (res.next()) {
- dataReceiver.add(res.getString("Time") + res.getString("root.test.d0.s0")
- + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
- logger.debug(res.getString("Time") + " | " + res.getString("root.test.d0.s0")
- + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
- }
- }
- hasResultSet = statement.execute("select * from root.flush");
- if (hasResultSet) {
- ResultSet res = statement.getResultSet();
- while (res.next()) {
- dataReceiver.add(res.getString("Time") + res.getString("root.flush.d0.s0")
- + res.getString("root.flush.d0.s1") + res.getString("root.flush.d1.g0.s0"));
- logger.debug(res.getString("Time") + " | " + res.getString("root.flush.d0.s0")
- + res.getString("root.flush.d0.s1") + res.getString("root.flush.d1.g0.s0"));
- }
- }
- hasResultSet = statement.execute("select * from root.iotdb");
- if (hasResultSet) {
- ResultSet res = statement.getResultSet();
- while (res.next()) {
- dataReceiver.add(res.getString("Time") + res.getString("root.iotdb.d0.s0")
- + res.getString("root.iotdb.d0.s1") + res.getString("root.iotdb.d1.s2")
- + res.getString("root.iotdb.d1.s3"));
- logger.debug(res.getString("Time") + res.getString("root.iotdb.d0.s0")
- + res.getString("root.iotdb.d0.s1") + res.getString("root.iotdb.d1.s2")
- + res.getString("root.iotdb.d1.s3"));
- }
- }
- statement.close();
- } catch (Exception e) {
- logger.error("", e);
- }
- } catch (ClassNotFoundException e) {
- fail(e.getMessage());
- Thread.currentThread().interrupt();
- }
- logger.debug(String.valueOf(dataSender.size()));
- logger.debug(String.valueOf(dataReceiver.size()));
- logger.debug(String.valueOf(dataSender));
- logger.debug(String.valueOf(dataReceiver));
- if (!(dataSender.size() == dataReceiver.size() && dataSender.containsAll(dataReceiver))) {
- success = false;
- }
- }
- }
-}
+///**
+// * Licensed to the Apache Software Foundation (ASF) under one
+// * or more contributor license agreements. See the NOTICE file
+// * distributed with this work for additional information
+// * regarding copyright ownership. The ASF licenses this file
+// * to you under the Apache License, Version 2.0 (the
+// * "License"); you may not use this file except in compliance
+// * with the License. You may obtain a copy of the License at
+// *
+// * http://www.apache.org/licenses/LICENSE-2.0
+// *
+// * Unless required by applicable law or agreed to in writing,
+// * software distributed under the License is distributed on an
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// * KIND, either express or implied. See the License for the
+// * specific language governing permissions and limitations
+// * under the License.
+// */
+//package org.apache.iotdb.db.sync.sender;
+//
+//import static org.junit.Assert.fail;
+//
+//import java.io.File;
+//import java.io.IOException;
+//import java.sql.Connection;
+//import java.sql.DriverManager;
+//import java.sql.ResultSet;
+//import java.sql.SQLException;
+//import java.sql.Statement;
+//import java.util.HashSet;
+//import java.util.Set;
+//import org.apache.iotdb.db.conf.IoTDBConfig;
+//import org.apache.iotdb.db.conf.IoTDBDescriptor;
+//import org.apache.iotdb.db.exception.StartupException;
+//import org.apache.iotdb.db.exception.SyncConnectionException;
+//import org.apache.iotdb.db.integration.Constant;
+//import org.apache.iotdb.db.service.IoTDB;
+//import org.apache.iotdb.db.sync.sender.conf.Constans;
+//import org.apache.iotdb.db.sync.sender.conf.SyncSenderConfig;
+//import org.apache.iotdb.db.sync.sender.conf.SyncSenderDescriptor;
+//import org.apache.iotdb.db.sync.sender.transfer.DataTransferManager;
+//import org.apache.iotdb.db.utils.EnvironmentUtils;
+//import org.apache.iotdb.jdbc.Config;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//
+///**
+// * The test is to run a complete sync function Before you run the test, make sure receiver has been
+// * cleaned up and inited.
+// */
+//public class SingleClientSyncTest {
+//
+// DataTransferManager fileSenderImpl = DataTransferManager.getInstance();
+// private IoTDBConfig conf = IoTDBDescriptor.getInstance().getConfig();
+// private String serverIpTest = "192.168.130.7";
+// private SyncSenderConfig config = SyncSenderDescriptor.getInstance().getConfig();
+// private Set<String> dataSender = new HashSet<>();
+// private Set<String> dataReceiver = new HashSet<>();
+// private boolean success = true;
+// private IoTDB deamon;
+// private static final String[] sqls1 = new String[]{"SET STORAGE GROUP TO root.vehicle",
+// "SET STORAGE GROUP TO root.test",
+// "CREATE TIMESERIES root.vehicle.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
+// "CREATE TIMESERIES root.vehicle.d0.s1 WITH DATATYPE=TEXT, ENCODING=PLAIN",
+// "CREATE TIMESERIES root.vehicle.d1.s2 WITH DATATYPE=FLOAT, ENCODING=RLE",
+// "CREATE TIMESERIES root.vehicle.d1.s3 WITH DATATYPE=BOOLEAN, ENCODING=PLAIN",
+// "CREATE TIMESERIES root.test.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
+// "CREATE TIMESERIES root.test.d0.s1 WITH DATATYPE=TEXT, ENCODING=PLAIN",
+// "CREATE TIMESERIES root.test.d1.g0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
+// "insert into root.vehicle.d0(timestamp,s0) values(10,100)",
+// "insert into root.vehicle.d0(timestamp,s0,s1) values(12,101,'102')",
+// "insert into root.vehicle.d0(timestamp,s1) values(19,'103')",
+// "insert into root.vehicle.d1(timestamp,s2) values(11,104.0)",
+// "insert into root.vehicle.d1(timestamp,s2,s3) values(15,105.0,true)",
+// "insert into root.vehicle.d1(timestamp,s3) values(17,false)",
+// "insert into root.vehicle.d0(timestamp,s0) values(20,1000)",
+// "insert into root.vehicle.d0(timestamp,s0,s1) values(22,1001,'1002')",
+// "insert into root.vehicle.d0(timestamp,s1) values(29,'1003')",
+// "insert into root.vehicle.d1(timestamp,s2) values(21,1004.0)",
+// "insert into root.vehicle.d1(timestamp,s2,s3) values(25,1005.0,true)",
+// "insert into root.vehicle.d1(timestamp,s3) values(27,true)",
+// "insert into root.test.d0(timestamp,s0) values(10,106)",
+// "insert into root.test.d0(timestamp,s0,s1) values(14,107,'108')",
+// "insert into root.test.d0(timestamp,s1) values(16,'109')",
+// "insert into root.test.d1.g0(timestamp,s0) values(1,110)",
+// "insert into root.test.d0(timestamp,s0) values(30,1006)",
+// "insert into root.test.d0(timestamp,s0,s1) values(34,1007,'1008')",
+// "insert into root.test.d0(timestamp,s1) values(36,'1090')",
+// "insert into root.test.d1.g0(timestamp,s0) values(10,1100)", "merge", "flush",};
+// private static final String[] sqls2 = new String[]{
+// "insert into root.vehicle.d0(timestamp,s0) values(6,120)",
+// "insert into root.vehicle.d0(timestamp,s0,s1) values(38,121,'122')",
+// "insert into root.vehicle.d0(timestamp,s1) values(9,'123')",
+// "insert into root.vehicle.d0(timestamp,s0) values(16,128)",
+// "insert into root.vehicle.d0(timestamp,s0,s1) values(18,189,'198')",
+// "insert into root.vehicle.d0(timestamp,s1) values(99,'1234')",
+// "insert into root.vehicle.d1(timestamp,s2) values(14,1024.0)",
+// "insert into root.vehicle.d1(timestamp,s2,s3) values(29,1205.0,true)",
+// "insert into root.vehicle.d1(timestamp,s3) values(33,true)",
+// "insert into root.test.d0(timestamp,s0) values(15,126)",
+// "insert into root.test.d0(timestamp,s0,s1) values(8,127,'128')",
+// "insert into root.test.d0(timestamp,s1) values(20,'129')",
+// "insert into root.test.d1.g0(timestamp,s0) values(14,430)",
+// "insert into root.test.d0(timestamp,s0) values(150,426)",
+// "insert into root.test.d0(timestamp,s0,s1) values(80,427,'528')",
+// "insert into root.test.d0(timestamp,s1) values(2,'1209')",
+// "insert into root.test.d1.g0(timestamp,s0) values(4,330)", "merge", "flush",};
+// private static final String[] sqls3 = new String[]{"SET STORAGE GROUP TO root.iotdb",
+// "SET STORAGE GROUP TO root.flush",
+// "CREATE TIMESERIES root.iotdb.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
+// "CREATE TIMESERIES root.iotdb.d0.s1 WITH DATATYPE=TEXT, ENCODING=PLAIN",
+// "CREATE TIMESERIES root.iotdb.d1.s2 WITH DATATYPE=FLOAT, ENCODING=RLE",
+// "CREATE TIMESERIES root.iotdb.d1.s3 WITH DATATYPE=BOOLEAN, ENCODING=PLAIN",
+// "CREATE TIMESERIES root.flush.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
+// "CREATE TIMESERIES root.flush.d0.s1 WITH DATATYPE=TEXT, ENCODING=PLAIN",
+// "CREATE TIMESERIES root.flush.d1.g0.s0 WITH DATATYPE=INT32, ENCODING=RLE",
+// "insert into root.iotdb.d0(timestamp,s0) values(3,100)",
+// "insert into root.iotdb.d0(timestamp,s0,s1) values(22,101,'102')",
+// "insert into root.iotdb.d0(timestamp,s1) values(24,'103')",
+// "insert into root.iotdb.d1(timestamp,s2) values(21,104.0)",
+// "insert into root.iotdb.d1(timestamp,s2,s3) values(25,105.0,true)",
+// "insert into root.iotdb.d1(timestamp,s3) values(27,false)",
+// "insert into root.iotdb.d0(timestamp,s0) values(30,1000)",
+// "insert into root.iotdb.d0(timestamp,s0,s1) values(202,101,'102')",
+// "insert into root.iotdb.d0(timestamp,s1) values(44,'103')",
+// "insert into root.iotdb.d1(timestamp,s2) values(1,404.0)",
+// "insert into root.iotdb.d1(timestamp,s2,s3) values(250,10.0,true)",
+// "insert into root.iotdb.d1(timestamp,s3) values(207,false)",
+// "insert into root.flush.d0(timestamp,s0) values(20,106)",
+// "insert into root.flush.d0(timestamp,s0,s1) values(14,107,'108')",
+// "insert into root.flush.d1.g0(timestamp,s0) values(1,110)",
+// "insert into root.flush.d0(timestamp,s0) values(200,1006)",
+// "insert into root.flush.d0(timestamp,s0,s1) values(1004,1007,'1080')",
+// "insert into root.flush.d1.g0(timestamp,s0) values(1000,910)",
+// "insert into root.vehicle.d0(timestamp,s0) values(209,130)",
+// "insert into root.vehicle.d0(timestamp,s0,s1) values(206,131,'132')",
+// "insert into root.vehicle.d0(timestamp,s1) values(70,'33')",
+// "insert into root.vehicle.d1(timestamp,s2) values(204,14.0)",
+// "insert into root.vehicle.d1(timestamp,s2,s3) values(29,135.0,false)",
+// "insert into root.vehicle.d1(timestamp,s3) values(14,false)",
+// "insert into root.test.d0(timestamp,s0) values(19,136)",
+// "insert into root.test.d0(timestamp,s0,s1) values(7,137,'138')",
+// "insert into root.test.d0(timestamp,s1) values(30,'139')",
+// "insert into root.test.d1.g0(timestamp,s0) values(4,150)",
+// "insert into root.test.d0(timestamp,s0) values(1900,1316)",
+// "insert into root.test.d0(timestamp,s0,s1) values(700,1307,'1038')",
+// "insert into root.test.d0(timestamp,s1) values(3000,'1309')",
+// "insert into root.test.d1.g0(timestamp,s0) values(400,1050)", "merge", "flush",};
+// private boolean testFlag = Constant.testFlag;
+// private static final String SYNC_CLIENT = Constans.SYNC_SENDER;
+// private static final Logger logger = LoggerFactory.getLogger(SingleClientSyncTest.class);
+//
+// public static void main(String[] args) throws Exception {
+// SingleClientSyncTest singleClientPostBackTest = new SingleClientSyncTest();
+// singleClientPostBackTest.setUp();
+// singleClientPostBackTest.testPostback();
+// singleClientPostBackTest.tearDown();
+// System.exit(0);
+// }
+//
+// public void setConfig() {
+// config.setSenderFolderPath(
+// config.getDataDirectory() + SYNC_CLIENT + File.separator + Constans.UUID_FILE_NAME);
+// config.setLastFileInfo(
+// config.getDataDirectory() + SYNC_CLIENT + File.separator + Constans.LAST_LOCAL_FILE_NAME);
+// String[] sequenceFileDirectory = config.getSeqFileDirectory();
+// String[] snapshots = new String[config.getSeqFileDirectory().length];
+// for (int i = 0; i < config.getSeqFileDirectory().length; i++) {
+// sequenceFileDirectory[i] = new File(sequenceFileDirectory[i]).getAbsolutePath();
+// if (!sequenceFileDirectory[i].endsWith(File.separator)) {
+// sequenceFileDirectory[i] = sequenceFileDirectory[i] + File.separator;
+// }
+// snapshots[i] =
+// sequenceFileDirectory[i] + SYNC_CLIENT + File.separator + Constans.DATA_SNAPSHOT_NAME
+// + File.separator;
+// }
+// config.setSnapshotPaths(snapshots);
+// config.setSeqFileDirectory(sequenceFileDirectory);
+// config.setServerIp(serverIpTest);
+// fileSenderImpl.setConfig(config);
+// }
+//
+// public void setUp() throws StartupException, IOException {
+// if (testFlag) {
+// EnvironmentUtils.closeStatMonitor();
+// deamon = IoTDB.getInstance();
+// deamon.active();
+// EnvironmentUtils.envSetUp();
+// }
+// setConfig();
+// }
+//
+// public void tearDown() throws Exception {
+// if (testFlag) {
+// deamon.stop();
+// EnvironmentUtils.cleanEnv();
+// }
+// if (success) {
+// logger.debug("Test succeed!");
+// } else {
+// logger.debug("Test failed!");
+// }
+// }
+//
+// public void testPostback() throws IOException, SyncConnectionException, ClassNotFoundException, SQLException, InterruptedException {
+// if (testFlag) {
+// // the first time to sync
+// logger.debug("It's the first time to sync!");
+// try {
+// Class.forName(Config.JDBC_DRIVER_NAME);
+// try (Connection connection = DriverManager
+// .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root",
+// "root")) {
+// Statement statement = connection.createStatement();
+// for (String sql : sqls1) {
+// statement.execute(sql);
+// }
+// statement.close();
+// }
+// } catch (SQLException | ClassNotFoundException e) {
+// fail(e.getMessage());
+// }
+//
+// fileSenderImpl.sync();
+//
+// // Compare data of sender and receiver
+// dataSender.clear();
+// try {
+// Class.forName(Config.JDBC_DRIVER_NAME);
+// try (Connection connection = DriverManager
+// .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root",
+// "root")) {
+// Statement statement = connection.createStatement();
+// boolean hasResultSet = statement.execute("select * from root.vehicle");
+// if (hasResultSet) {
+// ResultSet res = statement.getResultSet();
+// while (res.next()) {
+// dataSender.add(res.getString("Time") + res.getString("root.vehicle.d0.s0")
+// + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
+// + res.getString("root.vehicle.d1.s3"));
+// logger.debug(res.getString("Time") + " | " + res.getString("root.vehicle.d0.s0")
+// + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
+// + res.getString("root.vehicle.d1.s3"));
+// }
+// }
+// hasResultSet = statement.execute("select * from root.test");
+// if (hasResultSet) {
+// ResultSet res = statement.getResultSet();
+// while (res.next()) {
+// dataSender.add(res.getString("Time") + res.getString("root.test.d0.s0")
+// + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
+// logger.debug(res.getString("Time") + " | " + res.getString("root.test.d0.s0")
+// + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
+// }
+// }
+// statement.close();
+// } catch (Exception e) {
+// logger.error("", e);
+// }
+// } catch (ClassNotFoundException e) {
+// fail(e.getMessage());
+// Thread.currentThread().interrupt();
+// }
+//
+// dataReceiver.clear();
+// try {
+// Class.forName(Config.JDBC_DRIVER_NAME);
+// Connection connection = null;
+// try {
+// connection = DriverManager
+// .getConnection(String.format("jdbc:iotdb://%s:6667/", serverIpTest), "root",
+// "root");
+// Statement statement = connection.createStatement();
+// boolean hasResultSet = statement.execute("select * from root.vehicle");
+// if (hasResultSet) {
+// ResultSet res = statement.getResultSet();
+// while (res.next()) {
+// dataReceiver.add(res.getString("Time") + res.getString("root.vehicle.d0.s0")
+// + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
+// + res.getString("root.vehicle.d1.s3"));
+// logger.debug(res.getString("Time") + " | " + res.getString("root.vehicle.d0.s0")
+// + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
+// + res.getString("root.vehicle.d1.s3"));
+// }
+// }
+//
+// hasResultSet = statement.execute("select * from root.test");
+// if (hasResultSet) {
+// ResultSet res = statement.getResultSet();
+// while (res.next()) {
+// dataReceiver.add(res.getString("Time") + res.getString("root.test.d0.s0")
+// + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
+// logger.debug(res.getString("Time") + " | " + res.getString("root.test.d0.s0")
+// + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
+// }
+// }
+// statement.close();
+// } catch (Exception e) {
+// logger.error("", e);
+// } finally {
+// if (connection != null) {
+// connection.close();
+// }
+// }
+// } catch (ClassNotFoundException | SQLException e) {
+// fail(e.getMessage());
+// Thread.currentThread().interrupt();
+// }
+// logger.debug(String.valueOf(dataSender.size()));
+// logger.debug(String.valueOf(dataReceiver.size()));
+// logger.debug(dataSender.toString());
+// logger.debug(dataReceiver.toString());
+// if (!(dataSender.size() == dataReceiver.size() && dataSender.containsAll(dataReceiver))) {
+// success = false;
+// return;
+// }
+//
+// // the second time to sync
+// logger.debug("It's the second time to sync!");
+// try {
+// Class.forName(Config.JDBC_DRIVER_NAME);
+// Connection connection = null;
+// try {
+// connection = DriverManager
+// .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root",
+// "root");
+// Statement statement = connection.createStatement();
+// for (String sql : sqls2) {
+// statement.execute(sql);
+// }
+// statement.close();
+// } catch (Exception e) {
+// logger.error("", e);
+// } finally {
+// if (connection != null) {
+// connection.close();
+// }
+// }
+// } catch (ClassNotFoundException | SQLException e) {
+// fail(e.getMessage());
+// Thread.currentThread().interrupt();
+// }
+//
+// fileSenderImpl.sync();
+//
+// // Compare data of sender and receiver
+// dataSender.clear();
+// try {
+// Class.forName(Config.JDBC_DRIVER_NAME);
+// Connection connection = null;
+// try {
+// connection = DriverManager
+// .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root",
+// "root");
+// Statement statement = connection.createStatement();
+// boolean hasResultSet = statement.execute("select * from root.vehicle");
+// if (hasResultSet) {
+// ResultSet res = statement.getResultSet();
+// while (res.next()) {
+// dataSender.add(res.getString("Time") + res.getString("root.vehicle.d0.s0")
+// + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
+// + res.getString("root.vehicle.d1.s3"));
+// logger.debug(res.getString("Time") + " | " + res.getString("root.vehicle.d0.s0")
+// + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
+// + res.getString("root.vehicle.d1.s3"));
+// }
+// }
+// hasResultSet = statement.execute("select * from root.test");
+// if (hasResultSet) {
+// ResultSet res = statement.getResultSet();
+// while (res.next()) {
+// dataSender.add(res.getString("Time") + res.getString("root.test.d0.s0")
+// + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
+// logger.debug(res.getString("Time") + " | " + res.getString("root.test.d0.s0")
+// + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
+// }
+// }
+// statement.close();
+// } catch (Exception e) {
+// logger.error("", e);
+// } finally {
+// if (connection != null) {
+// connection.close();
+// }
+// }
+// } catch (ClassNotFoundException | SQLException e) {
+// fail(e.getMessage());
+// Thread.currentThread().interrupt();
+// }
+//
+// dataReceiver.clear();
+// {
+// Class.forName(Config.JDBC_DRIVER_NAME);
+// Connection connection = null;
+// try {
+// connection = DriverManager
+// .getConnection(String.format("jdbc:iotdb://%s:6667/", serverIpTest), "root",
+// "root");
+// Statement statement = connection.createStatement();
+// boolean hasResultSet = statement.execute("select * from root.vehicle");
+// if (hasResultSet) {
+// ResultSet res = statement.getResultSet();
+// while (res.next()) {
+// dataReceiver.add(res.getString("Time") + res.getString("root.vehicle.d0.s0")
+// + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
+// + res.getString("root.vehicle.d1.s3"));
+// logger.debug(res.getString("Time") + " | " + res.getString("root.vehicle.d0.s0")
+// + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
+// + res.getString("root.vehicle.d1.s3"));
+// }
+// }
+// hasResultSet = statement.execute("select * from root.test");
+// if (hasResultSet) {
+// ResultSet res = statement.getResultSet();
+// while (res.next()) {
+// dataReceiver.add(res.getString("Time") + res.getString("root.test.d0.s0")
+// + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
+// logger.debug(res.getString("Time") + " | " + res.getString("root.test.d0.s0")
+// + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
+// }
+// }
+// statement.close();
+// } catch (Exception e) {
+// logger.error("", e);
+// } finally {
+// if (connection != null) {
+// connection.close();
+// }
+// }
+// }
+// logger.debug(String.valueOf(dataSender.size()));
+// logger.debug(String.valueOf(dataReceiver.size()));
+// logger.debug(dataSender.toString());
+// logger.debug(dataReceiver.toString());
+// if (!(dataSender.size() == dataReceiver.size() && dataSender.containsAll(dataReceiver))) {
+// success = false;
+// return;
+// }
+//
+// // the third time to sync
+// logger.debug("It's the third time to sync!");
+// try {
+// Class.forName(Config.JDBC_DRIVER_NAME);
+// try (Connection connection = DriverManager
+// .getConnection(Config.IOTDB_URL_PREFIX + "127.0.0.1:6667/", "root",
+// "root")) {
+// Statement statement = connection.createStatement();
+// for (String sql : sqls3) {
+// statement.execute(sql);
+// }
+// statement.close();
+// } catch (Exception e) {
+// logger.error("", e);
+// }
+// } catch (ClassNotFoundException e) {
+// fail(e.getMessage());
+// Thread.currentThread().interrupt();
+// }
+//
+// fileSenderImpl.sync();
+//
+// // Compare data of sender and receiver
+// dataSender.clear();
+// try {
+// Class.forName(Config.JDBC_DRIVER_NAME);
+// try (Connection connection = DriverManager
+// .getConnection(String.format("jdbc:iotdb://%s:6667/", serverIpTest), "root",
+// "root")) {
+// Statement statement = connection.createStatement();
+// boolean hasResultSet = statement.execute("select * from root.vehicle");
+// if (hasResultSet) {
+// ResultSet res = statement.getResultSet();
+// while (res.next()) {
+// dataSender.add(res.getString("Time") + res.getString("root.vehicle.d0.s0")
+// + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
+// + res.getString("root.vehicle.d1.s3"));
+// logger.debug(res.getString("Time") + " | " + res.getString("root.vehicle.d0.s0")
+// + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
+// + res.getString("root.vehicle.d1.s3"));
+// }
+// }
+// hasResultSet = statement.execute("select * from root.test");
+// if (hasResultSet) {
+// ResultSet res = statement.getResultSet();
+// while (res.next()) {
+// dataSender.add(res.getString("Time") + res.getString("root.test.d0.s0")
+// + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
+// logger.debug(res.getString("Time") + " | " + res.getString("root.test.d0.s0")
+// + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
+// }
+// }
+// hasResultSet = statement.execute("select * from root.flush");
+// if (hasResultSet) {
+// ResultSet res = statement.getResultSet();
+// while (res.next()) {
+// dataSender.add(res.getString("Time") + res.getString("root.flush.d0.s0")
+// + res.getString("root.flush.d0.s1") + res.getString("root.flush.d1.g0.s0"));
+// logger.debug(res.getString("Time") + " | " + res.getString("root.flush.d0.s0")
+// + res.getString("root.flush.d0.s1") + res.getString("root.flush.d1.g0.s0"));
+// }
+// }
+// hasResultSet = statement.execute("select * from root.iotdb");
+// if (hasResultSet) {
+// ResultSet res = statement.getResultSet();
+// while (res.next()) {
+// dataSender.add(res.getString("Time") + res.getString("root.iotdb.d0.s0")
+// + res.getString("root.iotdb.d0.s1") + res.getString("root.iotdb.d1.s2")
+// + res.getString("root.iotdb.d1.s3"));
+// logger.debug(res.getString("Time") + res.getString("root.iotdb.d0.s0")
+// + res.getString("root.iotdb.d0.s1") + res.getString("root.iotdb.d1.s2")
+// + res.getString("root.iotdb.d1.s3"));
+// }
+// }
+// statement.close();
+// } catch (Exception e) {
+// logger.error("", e);
+// }
+// } catch (ClassNotFoundException e) {
+// fail(e.getMessage());
+// Thread.currentThread().interrupt();
+// }
+//
+// dataReceiver.clear();
+// try {
+// Class.forName(Config.JDBC_DRIVER_NAME);
+// Connection connection = null;
+// try {
+// connection = DriverManager
+// .getConnection("jdbc:iotdb://192.168.130.8:6667/", "root", "root");
+// Statement statement = connection.createStatement();
+// boolean hasResultSet = statement.execute("select * from root.vehicle");
+// if (hasResultSet) {
+// ResultSet res = statement.getResultSet();
+// while (res.next()) {
+// dataReceiver.add(res.getString("Time") + res.getString("root.vehicle.d0.s0")
+// + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
+// + res.getString("root.vehicle.d1.s3"));
+// logger.debug(res.getString("Time") + " | " + res.getString("root.vehicle.d0.s0")
+// + res.getString("root.vehicle.d0.s1") + res.getString("root.vehicle.d1.s2")
+// + res.getString("root.vehicle.d1.s3"));
+// }
+// }
+// hasResultSet = statement.execute("select * from root.test");
+// if (hasResultSet) {
+// ResultSet res = statement.getResultSet();
+// while (res.next()) {
+// dataReceiver.add(res.getString("Time") + res.getString("root.test.d0.s0")
+// + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
+// logger.debug(res.getString("Time") + " | " + res.getString("root.test.d0.s0")
+// + res.getString("root.test.d0.s1") + res.getString("root.test.d1.g0.s0"));
+// }
+// }
+// hasResultSet = statement.execute("select * from root.flush");
+// if (hasResultSet) {
+// ResultSet res = statement.getResultSet();
+// while (res.next()) {
+// dataReceiver.add(res.getString("Time") + res.getString("root.flush.d0.s0")
+// + res.getString("root.flush.d0.s1") + res.getString("root.flush.d1.g0.s0"));
+// logger.debug(res.getString("Time") + " | " + res.getString("root.flush.d0.s0")
+// + res.getString("root.flush.d0.s1") + res.getString("root.flush.d1.g0.s0"));
+// }
+// }
+// hasResultSet = statement.execute("select * from root.iotdb");
+// if (hasResultSet) {
+// ResultSet res = statement.getResultSet();
+// while (res.next()) {
+// dataReceiver.add(res.getString("Time") + res.getString("root.iotdb.d0.s0")
+// + res.getString("root.iotdb.d0.s1") + res.getString("root.iotdb.d1.s2")
+// + res.getString("root.iotdb.d1.s3"));
+// logger.debug(res.getString("Time") + res.getString("root.iotdb.d0.s0")
+// + res.getString("root.iotdb.d0.s1") + res.getString("root.iotdb.d1.s2")
+// + res.getString("root.iotdb.d1.s3"));
+// }
+// }
+// statement.close();
+// } catch (Exception e) {
+// logger.error("", e);
+// } finally {
+// if (connection != null) {
+// connection.close();
+// }
+// }
+// } catch (ClassNotFoundException | SQLException e) {
+// fail(e.getMessage());
+// Thread.currentThread().interrupt();
+// }
+// logger.debug(String.valueOf(dataSender.size()));
+// logger.debug(String.valueOf(dataReceiver.size()));
+// logger.debug(String.valueOf(dataSender));
+// logger.debug(String.valueOf(dataReceiver));
+// if (!(dataSender.size() == dataReceiver.size() && dataSender.containsAll(dataReceiver))) {
+// success = false;
+// }
+// }
+// }
- //}
++//}