一、实验设置
IoTDB版本
- v0.13.1
实验环境
- CPU:Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz,(6核12线程)
- L1 cache 284KB, L2 cache 1536KB, L3 cache 12MB
- 内存:16G
- 硬盘:1.8T HDD /dev/sdb1 mounted on /disk
- 操作系统:Ubuntu 16.04.7 LTS
RLTsFileReadCostBench用法
(1) 用人工数据写TsFile
java -jar RLTsFileReadCostBench-0.13.1-jar-with-dependencies.jar WRITE_SYN [pagePointNum] [numOfPagesInChunk] [chunksWritten] [timeEncoding] [valueDataType] [valueEncoding] [compressionType]
:用来标识是“写人工数据/写真实数据/读数据”中的“写人工数据”
pagePointNum(ppn)
:一个page内的点数numOfPagesInChunk(pic)
:一个chunk内的pages数chunksWritten(cw)
:写的chunks总数timeEncoding(te)
:时间戳列编码方式valueDataType(vt)
:值列数据类型valueEncoding(ve)
:值列编码方式compressionType(co)
java -jar RLTsFileReadCostBench-0.13.1-jar-with-dependencies.jar WRITE_REAL [path_of_real_data_csv_to_write] [pagePointNum] [numOfPagesInChunk] [timeEncoding] [valueDataType] [valueEncoding] [compressionType]
:用来标识是“写人工数据/写真实数据/读数据”中的“写真实数据”
path_of_real_data_csv_to_write
:用来写TsFile的真实数据集csv地址pagePointNum(ppn)
:一个page内的点数numOfPagesInChunk(pic)
:一个chunk内的pages数timeEncoding(te)
:时间戳列编码方式valueDataType(vt)
:值列数据类型valueEncoding(ve)
:值列编码方式compressionType(co)
(3) 读实验
java -jar RLTsFileReadCostBench-0.13.1-jar-with-dependencies.jar READ [path_of_tsfile_to_read] [decomposeMeasureTime] [D_decompose_each_step] (timeEncoding)
:用来标识是“写人工数据/写真实数据/读数据”中的“读数据”
path_of_tsfile_to_read
:要读取的TsFile地址decomposeMeasureTime
:FALSE
to measure the read process as a whole, in which caseD_decompose_each_step
is useless.TRUE
to measure the decomposed read process, and the decomposition granularity is controlled byD_decompose_each_step
.D_decompose_each_step
:WhendecomposeMeasureTime
isTRUE
,D_decompose_each_step=FALSE
to measure the "(D_1)decompress_pageData" and "(D_2)decode_pageData" steps without further deomposition,D_decompose_each_step=TRUE
to break down these two steps further and measure substeps inside.timeEncoding(te)
:IftimeEncoding
is not specified, TS_2DIFF will be used by default.timeEncoding
控制参数 | decomposeMeasureTime=FALSE | decomposeMeasureTime=TRUE, D_decompose_each_step=FALSE | |
---|---|---|---|
测量最小单元步骤 | total_time | (A)1_index_read_deserialize_MagicString_FileMetadataSize(us) (A)2_index_read_deserialize_IndexRootNode_MetaOffset_BloomFilter(us) (A)3_2_index_read_deserialize_IndexRootNode_exclude_to_TimeseriesMetadata_forExactGet(us) (B)4_data_read_deserialize_ChunkHeader(us) (B)5_data_read_ChunkData(us) (C)6_data_deserialize_PageHeader(us) (D-1)7_data_decompress_PageData(us) (D-2)8_data_decode_PageData(us) | (A)1_index_read_deserialize_MagicString_FileMetadataSize(us) (A)2_index_read_deserialize_IndexRootNode_MetaOffset_BloomFilter(us) (A)3_2_index_read_deserialize_IndexRootNode_exclude_to_TimeseriesMetadata_forExactGet(us) (B)4_data_read_deserialize_ChunkHeader(us) (B)5_data_read_ChunkData(us) (C)6_data_deserialize_PageHeader(us) (D-1)7_1_data_ByteBuffer_to_ByteArray(us) (D-1)7_2_data_decompress_PageDataByteArray(us) (D-1)7_3_data_ByteArray_to_ByteBuffer(us) (D-1)7_4_data_split_time_value_Buffer(us) (D-2)8_1_createBatchData(us) (D-2)8_2_timeDecoder_hasNext(us) (D-2)8_3_timeDecoder_readLong(us) (D-2)8_4_valueDecoder_read(us) (D-2)8_5_checkValueSatisfyOrNot(us) (D-2)8_6_putIntoBatchData(us) |