第 3 章 · Region 与读路径:数据的落点会移动


文档摘要

第 3 章 · Region 与读路径:数据的落点会移动 章节摘要:一行数据的落点不是固定的。Region 会因数据增长而分裂、会被 Master 迁移到别的 RegionServer、其下的 StoreFile 会被 Compaction 反复重写。本章先讲 Region 的划分、分裂与合并对"落点"的影响,再讲 Compaction 如何收拾第 2 章留下的小文件,最后补全读路径:跨 MemStore、BlockCache 与多个 HFile 的三层合并。 学习目标 阅读完本章,你应当能够: 说清 Region 的生命周期:预分区 → 增长 → 自动分裂 → 迁移 →(可选)合并; 解释 Region 分裂的过程与对客户端寻址缓存的影响;

第 3 章 · Region 与读路径:数据的落点会移动

章节摘要:一行数据的落点不是固定的。Region 会因数据增长而分裂、会被 Master 迁移到别的 RegionServer、其下的 StoreFile 会被 Compaction 反复重写。本章先讲 Region 的划分、分裂与合并对"落点"的影响,再讲 Compaction 如何收拾第 2 章留下的小文件,最后补全读路径:跨 MemStore、BlockCache 与多个 HFile 的三层合并。

学习目标

阅读完本章,你应当能够:

  1. 说清 Region 的生命周期:预分区 → 增长 → 自动分裂 → 迁移 →(可选)合并;
  2. 解释 Region 分裂的过程与对客户端寻址缓存的影响;
  3. 区分 Minor 与 Major Compaction,理解写放大、读放大、空间放大的三角权衡;
  4. 画出读路径全图:BlockCache、MemStore、HFile 集合的键值归并;
  5. 定位"越读越慢""scan 卡顿"这类问题的候选原因清单。

核心概念速览

Region 是逻辑连续、物理可迁的容器——行键不变,行键所属的 Region 及其宿主机一直在变。

图 3-1 行键空间与 Region/宿主机映射的动态变化

图 3-1 行键空间与 Region/宿主机映射的动态变化

子章节导航

3.1 Region 寻址、分裂与落点迁移

Region 的定义与生命周期、预分区策略、自动分裂的过程、对客户端的影响,以及行键落点的动态计算。

3.2 Compaction:小文件合并的取舍

Minor/Major 两档 Compaction、三种放大的三角关系、参数与停用自动 Major 的生产惯例。

3.3 读路径:三层合并

get 与 scan 的统一视角:Region 定位、Store 内多文件键值归并、多版本与墓碑的处理、BlockCache 的位置。

子章节之间的逻辑关系

Region 的"边界"怎么动(3.1) | 文件层面的整理(3.2 Compaction)—— Region 不动 HFile 在动 | 读的时候怎么把散落数据拼回一行(3.3 读路径合并)

三节合起来回答本册暗线的后半程:数据落点之后,落点如何随分裂与迁移漂移、落盘文件如何自我整理、读取如何逆着这些机制还原正确答案。

前置知识与后续延伸

  • 前置:第 2 章全部(HFile、MemStore 是本章的直接输入);1.3 节的 Meta 寻址。
  • 为后续铺垫:3.1 的预分区直接服务第 5 章 RowKey 设计;3.3 的读合并是第 6 章布隆过滤器与缓存、第 7 章性能排查的地基。

作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U