第2章 写入路径:从PUT到HDFS


文档摘要

第 2 章 · 写入路径:从 PUT 到 HDFS 章节摘要:本章沿着一次 put 请求在 RegionServer 内部的旅程,讲透 HBase 的 LSM-Tree 写入模型:先写 WAL 保证宕机可恢复,再写 MemStore 攒批,Flush 落成 HFile,最终多副本存进 HDFS。理解"顺序写换吞吐"的取舍,就理解了 HBase 为什么写得快、又为什么会读放大。 学习目标 阅读完本章,你应当能够: 画出写入路径全图:WAL → MemStore → Flush → HFile → HDFS; 解释 WAL 的滚动、回放与 sync 策略对持久性与吞吐的影响; 说清 MemStore 的结构、Flush 触发条件与阻塞机制;

第 2 章 · 写入路径:从 PUT 到 HDFS

章节摘要:本章沿着一次 put 请求在 RegionServer 内部的旅程,讲透 HBase 的 LSM-Tree 写入模型:先写 WAL 保证宕机可恢复,再写 MemStore 攒批,Flush 落成 HFile,最终多副本存进 HDFS。理解"顺序写换吞吐"的取舍,就理解了 HBase 为什么写得快、又为什么会读放大。

学习目标

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

  1. 画出写入路径全图:WAL → MemStore → Flush → HFile → HDFS;
  2. 解释 WAL 的滚动、回放与 sync 策略对持久性与吞吐的影响;
  3. 说清 MemStore 的结构、Flush 触发条件与阻塞机制;
  4. 读懂 HFile 的分层布局,明白多版本与墓碑在文件里长什么样;
  5. 用参数表估出一条写入的延迟构成,定位"写不进去"的基本盘。

核心概念速览

写入路径的精髓是"前台只做顺序追加,繁重的整理交给后台"——用可控的读放大换取极高的写吞吐。

图 2-1 LSM-Tree 写入路径分层透视

图 2-1 LSM-Tree 写入路径分层透视

子章节导航

2.1 WAL:先记日志再写内存

写路径的第一站。WAL 的结构、滚动与 sync 策略,RegionServer 宕机后靠它回放恢复;也讲多 WAL 与异步 WAL 这两个常见的吞吐优化。

2.2 MemStore 与 Flush:内存里的数据如何落地

写路径的第二站。跳表结构、四种 Flush 触发条件、阻塞水位的连锁反应,以及"写 hang 住"最常见的原因。

2.3 HFile:最终落盘的格式

写路径的终点站。块结构、索引与布隆过滤器的位置、KeyValue 编码,多版本与墓碑在文件里的物理形态。

子章节之间的逻辑关系

WAL(保命) → MemStore(攒批) → HFile(归档) │ │ │ │ └─ Flush 是二者的桥 ─┘ └─ 三站共同回答:为什么写得快,为什么读要合并 ↓ 第 3 章:HFile 堆积之后怎么办(Compaction 与 Region)

三节是同一条流水线的三站,建议连读。每节都带着同一个问题读:这一站如果出问题,业务侧会看到什么现象?——这个视角在第 7 章故障排查会直接复用。

前置知识与后续延伸

  • 前置:第 1 章的 Region/Store 概念(1.3 节)、基本的磁盘顺序写与随机写性能差异数量级认知。
  • 为后续铺垫:本章的 HFile 是第 3 章 Compaction 与读路径的输入;MemStore 水位机制是第 7 章调优"写阻塞"的理论基础。

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