申请试用
HOT
登录
注册
 
账号已存在
《 Apache Doris 源码阅读与解析——第五讲:数据是如何被读取的》
Apache Doris
/
发布于
/
240
人观看

《 Apache Doris 源码阅读与解析》系列直播活动旨在帮助 Apache Doris 社区的开发者或者有意向参与 Apache Doris 社区建设的小伙伴们,可以更快熟悉 Apache Doris 代码的组织结构和一些主要流程的实现原理以及代码位置,以便于各位小伙伴们能够快速上手,参与到开发工作中来。

本期内容为《第五讲:数据是如何被读取的》

这一讲我们将从扫描节点出发,介绍数据是如何从最底层的文件被读取到查询层处理的:

介绍读取逻辑的层级结构以及每一层的作用
Page Cache 的原理和作用

展开查看详情

1 .Apache Doris 源码阅读与解析 第五讲:数据的读取流程 李昊鹏

2 .课程介绍 • Doris数据读取的逻辑流程 • Reader -> RowsetReader -> SegmentIterator 的读取流程 • Page的读取与Page Cache

3 . 01 Doris数据读取的逻辑流程

4 .基础概念 • Tablet • Rowset • Segment • Page

5 . 读取数据的查询计划 • desc select * from baseall;

6 .层级关系

7 .读取流程

8 . 02 数据读取流程源码解析

9 .Reader • TupleReader • _direct_next_row • _agg_key_next_row • _unique_key_next_row

10 .AggKey读取

11 .UniqueKey读取

12 .CollectIterator的接口 • 归并排序(堆排序) • 依托与下层多Segment的有序性 • Key相等时,比较Rowset的版本

13 .RowSetReader

14 .RowwiseIterator • AutoIncreamentIterator:自增的迭代器 • EmptySegmentIterator:空的迭代器 • SegmentIterator:实际读取Segment数据的迭代器 • MergeIterator:进行归并排序的迭代器,它的孩子通常为多个 SegmentIterator,来确保多Segment读取的有序性 • UnionIterator:仅用于Dup Key表,不排序,直接返回数据

15 .MergeInterator与UnionIterator 它们都是在SegmentIterator之上进行的逻辑封装, 实际数据读取的逻辑在SegmentIteratror之中

16 .SegmentIterator读取流程 Segment索引过滤查询条件 基于KeyRange确认要读取行 Page索引过滤查询条件 读取存在查询条件的列过滤 延迟物化 读取剩余不带查询条件的列

17 .Segment的索引过滤

18 .ZoneMap的索引结构

19 .基于KeyRange确认要读取的行

20 .基于KeyRange确认要读取的行

21 .Page索引过滤查询条件 • ZoneMap索引 • BitMap索引 • BloomFilter索引

22 .延迟物化

23 .基于KeyRange读取存在查询条件的列并过滤

24 .读取剩余不带查询条件的列

25 . 03 Page的读取与PageCache

26 .Page的结构 • 类型:IndexPage/DataPage/DictionaryPage/ShortKeyPage • 定位:Footer中存储,Offset,Size确定唯一Page • 压缩:LZ4,LZ4f, Snappy, Zlib

27 .PageCache • 定位:Page的缓存池,可以缓存IndexPage/DataPage • 策略:LRUCache • 优点:减少磁盘I/O,CPU解压缩的开销 • 默认配置: • storage_page_cache_limit: 20% • index_page_cache_percentage: 10% • disable_storage_page_cache: false

28 .Page的读取流程 Page是否存在 返回Page Cache中 读取文件 解压缩 写入Cache

29 .Cache存储 • CacheKey:文件名 + Offset • 内存结构:双向链表 • 引用计数的CacheHandle • Cache优先级:NORMAL/DURABLE • 配置表为“in_memmory”属性时,PageCache自动切换DURABLE • LRU进行淘汰时,优先淘汰NORMAL属性的PageCache

33 点赞
2 收藏
27下载
确认
3秒后跳转登录页面
去登陆