Versions Compared

Key

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

...

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyIOTDB-1833

(1a) store PageHeader with PageData (current design)

(2b) combine PageHeader with ChunkHeader

...

For raw data query:

(1) time > t:

  • (a) 跳读前几个 PageHeader,跳过不符合时间过滤条件的 PageData,然后开始读后面的 PageData
  • (b) 连续读前几个 PageHeader,跳到符合时间过滤条件的第一个 PageData,然后开始连续读后面的 PageData

(2) time < t:

  • (a) 读前几个符合时间过滤条件的 PageHeader 和 PageData,直到不符合条件的 PageHeader 为止
  • (b) 连续读前几个 PageHeader,直到不符合条件的 PageHeader 为止,跳过后面的 PageHeader,然后开始连续读一部分的 PageData


For aggregation query:

(1) time > t:

  • (a) 跳读前几个 PageHeader,跳过不符合时间过滤条件的 PageData,然后开始跳读后面的 PageHeader,获得聚合结果
  • (b) 连续读前几个 PageHeader,然后开始连续读后面的 PageHeader,获得聚合结果

(2) time < t:

  • (a) 跳读前几个符合时间过滤条件的 PageHeader,获得聚合结果,直到不符合条件的 PageHeader 为止
  • (b) 连续读前几个 PageHeader,获得聚合结果,直到不符合条件的 PageHeader 为止


Conclusion:

从理论分析,(b) 方案无论在原始数据查询还是在聚合查询中均会有较好的表现。

使用 (a) 方案仅仅是因为将对应 PageHeader 和 PageData 放在一起存储,易于理解。