Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

1 实验环境

1.1 测试条件

  • 500个measurement

  • 每个measurement 10000row

1.2 测试用例

  • Read All Vector Chunk

    • 读一串连续的measurement,横坐标表示读取一个vector下连续的chunk的数量(从1开始)

    • select s001,s002,s003,..,s100 from root.sg_2.d1.vector

  • Read Bad Vector Chunk

    • 读两个measurement,横坐标表示读取一个vector下的首尾chunk的间隔

    • select s001,s500 from root.sg_2.d1.vector

2 windows环境

2.1 Read All Vector Chunk

  • 在cli端进行测时,10次去极值取平均

image-20211006161842423

分析:

  • 时间基本上是线性增长,符合预期

  • 添加cache后基本没有优化,不符合预期


3 Linux环境

使用Linux环境测试,主要是为了借助vmtouch工具验证OS缓存的影响。

https://hoytech.com/vmtouch/

3.1 lock

使用vmtouch工具,强制使tsfile驻留在OS缓存中。

...

  • Read All Vector Chunk 的情况下,都不涉及磁盘IO,效率没有差别。

  • Read Bad Vector Chunk 的情况下,读的measurement间隔越大,性能差异越大。我认为原因可能是

    • 开cache时需要开一个较大的ByteBuffer

    • 内存IO传输大小

    image-20211006201744701

3.2 evict

使用vmtouch工具,每次读文件前都强制将tsfile从OS缓存中移除,即真对磁盘进行IO

...