作品链接 · 打开即玩(纯前端,无需注册、无需安装)
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。