【1024 TiDB 社区 AIGC 黑客松】《一座永不打烊的图书馆》

这座图书馆从来不打烊。

数据库的每一次读写,都是这座馆里一次默默完成的借还。

这次参加 1024 TiDB 社区 AIGC 黑客松,我借助AI工具试着把平凯数据库(TiDB)的整套架构,画成了一座只有夜晚的图书馆——同一个世界观、同一套孔版印刷视觉、5 件作品:一张海报、一张架构导览图、一条 8 格条漫、一支 60 秒短片,还有一个能点着玩的互动网页。

做完之后最大的感受是:架构名词一旦翻译成「人的动作」,比我预想的好懂太多。

馆里有四位馆员,正好对应四个组件

馆员 对应组件 他的规矩
前台接待员(云朵身体、头顶一盏台灯、胸前空白名牌) TiDB Server(SQL 层) 只看单,不看馆藏——她本身不存任何数据;读者多了,随时可以再请一位
抄书三兄弟(三个长得完全一样的小抄书员) TiKV(存储层 / Raft 三副本) 三人一模一样,这就是「副本一致」;抄到第二本,账就认了
老馆长(单片眼镜、怀表、木质指示棒) PD(调度中枢) 管账本、发号、把书调匀;但他只提建议,不亲自搬书
统计员(青绿条纹围裙、一沓竖排统计表) TiFlash(列存扩展) 只看不写,账本永远慢半拍——因为副本是异步拿到的

下面 5 件,从「看」到「玩」,依次来。


作品 1|主视觉海报《一座永不打烊的图书馆》

深夜的图书馆、无限延伸的书架、暖光下的四位馆员。海报不含技术信息,它的任务只有一件——先把世界观立住,让你相信这座图书馆真的存在。

孔版印刷风格,1240 × 1748。


作品 2|架构导览图《图书馆导览图》

把 TiDB 的四个核心组件画成图书馆里的四位馆员:不存东西的前台、一模一样的抄书三兄弟、只提建议的老馆长、只读不写的统计员。一张图,左边是角色,右边是机制。

这是整套作品里技术密度最高的一张。左边看脸,右边看机制。


作品 3|8 格条漫《图书馆的一天》

主角是一张借书单——它就是一个客户端请求。8 格讲完它在图书馆的一夜:递单、读单、拆解、三兄弟同时动笔、抄到第二本账就认了、馆长发号、搬书、行列存分流。竖排长图,一镜到底。

8 格讲了什么(每格一句叙事 + 一条技术口径)

格 叙事 技术口径
01 递单 23:00,一条查询到达前台。 TiDB Server 接收连接,解析 SQL
02 前台读单 前台只看单,不看馆藏——她本身不存任何数据。 SQL 层无状态,可多实例并行,由负载均衡分摊连接
03 拆解 一张单被拆成几条,分头去办。 解析与优化后生成分布式执行计划,下推到多个 Region
04 三兄弟动笔 同一个架区,三个抄书员同时落笔,姿势一模一样。 一个 Region 默认三副本,组成 Raft 组;Leader 写,Follower 复制
05 过半入库 抄到第二本,账就认了。 写入只需同步复制到多数节点即认为成功;少数副本失效可自动补齐
06 馆长发号 馆长管着全馆的账本,也管着每一次借还的号。 PD 存储各节点实时数据分布与集群拓扑,为分布式事务分配事务 ID
07 搬书 哪座馆太挤,书就自己搬过去。 PD 依节点上报状态生成调度计划,使 Region 分布尽量均匀
08 两条路 要查一本,走左边;要数一整个月,找她。 TiKV 行存 vs TiFlash 列存,TiDB 自动选择,甚至同一查询内混用


作品 4|60 秒短片《为什么同一本书要抄三份》

一座图书馆用 60 秒回答一个问题:同一本书,为什么要抄三份?孔版印刷风格动画,6 镜 × 10 秒。

  • 00–10s 夜里推门进馆,永不打烊
  • 10–20s 一本书被抄成三份,三个一模一样的抄书员
  • 20–30s 两份先放下笔,账就认了(全片高潮)
  • 30–40s 一座分馆灯灭,另两馆的书还在
  • 40–50s 灯重新亮起,缺的那份已经被悄悄补齐
  • 50–60s 家族群像收尾


作品 5|互动演示《点一下,看数据搬家》

这不是示意图,是一份能跑的小模拟:点一下「新开分馆」,看 8 个 Region 先加副本、追平数据、再删旧副本,一路搬完家;还能制造一个访问热点,看 Leader 换人。单文件 HTML,零依赖,在线可玩,源码随帖附上。

在线玩:https://tidb-library-demo.app.workbuddy.host/

点「在南边新开一座分馆」:新馆通过心跳向 PD 报到;PD 检查副本分布、生成调度计划;Region 分三批搬家——先在目标分馆把新副本建起来、等它把数据追平,再删掉源分馆的旧副本,整个过程三副本始终在线。 再点「制造一个访问热点」:这次一本书都不搬,只换 Leader。

好有创意!恭喜老师您的作品审核通过,可进入下一阶段社区投票~期待创作更多好作品呀