本章跟着一条线走:数据在节点里装好了,但"数据到底住在哪个节点、来一个请求该敲哪扇门"还没解决。这条线从"把一张表分片摊开"讲起,到"给每份分片留副本",再到"路由把请求送对门",最后到"元数据这本全局电话簿怎么维护"。四步走完,一座调度室的"找数据"能力就齐了。
前几章在第 2 章定了语言、第 3 章立了骨架,但真正的分工还没落在一张"哪块数据归谁管"的清单上。这一章的主线就是给这座调度室装上一套"查台本":先把大表按策略切成片(分片),再给每片放第二、三份(复制),然后让路由知道该把新到的请求派给谁,而支撑这一切的,是一张"数据在哪儿"的元数据电话簿。我们沿着"摊开 → 备份 → 找到 → 记下位置"四个动作把这条线走完。
本章最关键的认知转折是:"找数据"和"存数据"是两件要分别下功夫的事。分片决定数据住在哪儿(存),路由决定请求去敲哪扇门(找),而元数据是连接这两者的桥梁——它记录了"哪片范围在哪个节点",路由正是靠查它才能把请求送对门。新手常犯的错是把"分片"当成全部,忘了给每片做副本、忘了让路由表与元数据保持同步。一旦把这三样看成一个闭环,你对分布式库的"如何找到数据"就有整体把握了。
读本章最容易掉进去的坑,是把三件事当成一件事。分片回答"数据按什么规则切成多少块"(存得散不散);路由回答"这次请求该去敲哪扇门、门敲对了还要不要把多扇门的答案拼起来"(找得快不快);元数据回答"世界上现在到底有哪些片、它们各自住在哪个节点、最近有没有搬家"(记不记得住现状)。三者的先后是固定的:分片在前决定格局,元数据持续记录这份格局,路由在每一次请求到来时临时查元数据做决策。新手总以为"做了分片就万事大吉",看完 4.3 和 4.4 你就明白,缺了"可靠的自愈电话簿",再漂亮的分片方案也会在节点一换就彻底迷路。
数据找到了、送对了门,接下来最硬核的部分来了:多台机器要"把一件事做成一遍、且要么全成要么全不成"。第 5 章进入分布式事务与一致性——从强/最终/因果谱系,到 2PC、3PC、补偿 Saga、MVCC,把"跨节点的原子性"一步步讲透。第 4 章找数据的本事,喂给第 5 章做事务的胃口;而你在这里养成的"位置清单思维",也会让第 5 章理解"数据在哪、谁在改它"更容易。