第四篇 持久化与热更新

日志收齐了、压好了、采完样了,最后一关是把它稳稳落盘。落盘听着像「写文件」,真做起来全是问题:内存里攒多少才往下刷?机器突然断电,没刷的那部分日志是不是就没了?线上想改个采样率,难道要重启整条管道?

这三问分别对应本篇的三块骨头。RocksDB 负责把日志又快又能找回地写下去,写缓冲决定攒批与刷盘的节奏,热更新让配置改动不打断采集,崩溃恢复则托住「不丢」这条底线。本篇是整条管道的收口,前面跑得再快,崩了恢复不回来,全部清零。

本篇路线

节 主题 解决什么
4.1 RocksDB 分段 落盘存哪、怎么分段
4.2 写入路径 攒多少刷多少、何时 stall
4.3 热更新 改配置不重启
4.4 崩溃恢复 WAL 重放与不丢

篇章关系

本篇承接第三篇的压缩与采样——压缩省的是带宽,落盘保的是性命。写缓冲与通道背压是同一根控制链上的两级,可对照第二篇的 mpsc 有界通道一起看;热更新的原子替换手法,在采集偏移的持久化里也用过。存储介质与云盘规格决定参数怎么调,部署侧可参考 腾讯云 AI 数据处理平台 ADP 特惠。

延伸阅读

  • 落盘结构怎么选,见下一节 4.1。
  • 写缓冲与背压的联动,见 4.2。
  • 通道背压的基础,见 Go 微服务实战。