「1024 TiDB AIGC 黑客松」《容灾之夜》:真停一台 TiKV,我把整场自愈拍了下来

作品链接 · 打开即玩(纯前端,无需注册、无需安装)
https://tidb-kernel-lab.app.workbuddy.host/

本支视频 ·《容灾之夜》(2 分 19 秒 · 竖版 · 全片逐帧渲染)
https://failover-night.app.workbuddy.host/


这不是录屏,是把整场实验压成 2 分 19 秒

前面那些演示台讲的是"机制应该怎样",这一支讲的是**“我动手之后,它实际上怎样”**。

2026-09-21 晚上,我在三台机器上装好的 v8.5.7 集群上,对着 192.168.3.114 的 TiKV 执行了 systemctl stop tikv-20160@114 —— 真停,不是模拟,不是 kill -9。然后用探针脚本每 2 秒采一次全集群状态,一直采到集群自己恢复为止。

之后发生的事,全部由数据驱动还原成画面:

时刻 真实发生的事
0 秒 114 上的副本开始失联
15 秒 心跳超时,转 Disconnected
2 分 17 秒 PD 判定节点 Down,开始补副本
8 分 44 秒 副本迁移完成,21 / 21 归位
恢复后 20 秒 节点上线,被搬走的副本开始回填
14 秒 回填完成,四个节点回到 6 / 5 / 5 / 5

终态是四台机器上的副本数 6 / 5 / 5 / 5,Checker 五项全零。

画面里的每个数字都点得回日志

这一支没有一句是"编出来的"。副本罐子一个一个从 114 飘走的时刻,来自 dev/probe/ 的原始采集输出;四店副本数曲线是那条真实阶梯逐点画出来的;旁白念的每一个秒数都是探针实测值。

所以它不是"讲清楚了容灾",而是把一次真实容灾过程原样复现了一遍 —— 你看到的动画,是日志的另一种读法。

关于"人物更可爱"这件事

四个店长是四台机器:114 是狐狸,112 是猫,110 是鸭子,3153 是临时来承接副本的企鹅。节点被判 Down 的时候,狐狸会闭上眼睛睡觉、冒汗滴 —— 因为那一刻它确实什么都做不了,它只是被挂起的那一个。

PD 调度官是只挥手的小狗。补副本的真相是**“迁移"不是"新增”**:PD 先让 114 把副本全搬给当时最空的节点,等 114 回来,再由副本最多的节点轮流让出副本给它填回。那个"挥手"的动作就是这一步。

AIGC 工具说明

环节 工具 具体分工
分镜脚本与旁白 Qoder 21 句旁白按真实实验时间线逐句对齐;每句都锚定一个实测数字
语音合成 edge-tts(zh-CN-XiaoxiaoNeural +16%) 自然语音旁白,非系统合成音
逐帧渲染 Qoder + Chrome DevTools Protocol 2065 帧逐帧截图,无 CSS animation、无随机、无 Date.now(),同参数可复现
视觉与文案 Qoder 四动物线稿 SVG、PD 调度官、时间轴全部矢量排版
主站协作 平凯 Loop 本支视频属《内核解剖室》系列,主站在工作区 ws_fzr6cvj6jgch4k 以 Agent Team(含 fact-checker 否决权)方式完成

AI 参与到了什么程度:旁白与分镜是 AI 起草、按实测数据逐句校正的;画面是 AI 生成的矢量图形而非录屏;语音是 AI 合成。原始数据、采集日志、断言脚本全部在仓库里,AI 没有替我编过任何一个数字。

这条时间线的前后文

  • 想亲手试 → 交互演示台(打开即玩)
  • 想看同一套机制的信息图版 → 36 秒竖版动态信息图
  • 想看结论是怎么在真机上量出来的 → 实测笔记(三台真机,含三处"工具撒谎"记录)
  • 想看这套东西怎么保证没讲错 → 「否决权」页

原料都在仓库 dev/probe/ 下,未经改写。


作品说明:2 分 19 秒竖版动画。2026-09-21 在 3 节点 v8.5.7 集群上真停 192.168.3.114 的 TiKV,用探针每 2 秒采集至自愈,再按原始日志逐帧还原成画面。旁白每个数字都是实测值,画面每个时刻都点得回 dev/probe/ 日志。四节点副本终态 6/5/5/5。

恭喜老师您的作品审核通过,可进入下一阶段社区投票~