文章目录Day06|Partitioning:数据分区不是切分表,而是高并发下的局部战争与路由失配0. 本篇边界:哪些内容必须砍掉?本篇保留本篇不写成1. 案例原文 / 关联原文链接映射2. Day06 总纲:分区不是切表,而是切负载、状态和故障半径3. 第一刀:砍掉“哈希分片包治百病”的乌托邦3.1 教科书式幻觉3.2 名人效应:哈希无法拯救 Hot Key3.3 热点不是数据倾斜,而是请求倾斜3.4 打破确定性:人为把一个逻辑 Key 撕成多个物理 Key3.5 反证思维:热点 Key 能否完全靠数据库自动处理?4. 第二刀:砍掉二级索引的平庸对比4.1 教科书式幻觉4.2 场景一:本地二级索引的 Scatter-Gather 尾延时屠杀4.3 Scatter-Gather 的隐藏成本4.4 场景二:全局二级索引的分布式事务暗箭4.5 反证思维:全局索引是不是 Scatter-Gather 的完美解?5. 第三刀:砍掉“自动化再平衡”的运维幻觉5.1 教科书式幻觉5.2 死亡之风:自动再平衡如何放大故障5.3 自动化的边界:自动路由可以,自动迁移要谨慎5.4 再平衡不是扩容,是状态债务转移5.5 反证思维:自动再平衡越快越好吗?6. 路由失配:分区以后,最难的是客户端如何找到正确分区6.1 分区让路由成为系统核心6.2 路由缓存陈旧:客户端找到旧分区6.3 路由失配与 K8s 辅助类比6.4 架构治理机制7. Day06 提炼出的新分区模板示例一:热点商品 Key 打爆单分区示例二:本地二级索引导致 Scatter-Gather P999 飙升示例三:全局二级索引异步更新导致搜索幻觉示例四:自动再平衡诱发集群雪崩8. Day06 最终收束9. Day07 预告:第七章 TransactionsDay06|Partitioning:数据分区不是切分表,而是高并发下的局部战争与路由失配Day01 讨论故障传播、负载放大、状态不可见。Day02 讨论数据模型如何决定系统能看见什么关系。Day03 讨论存储结构如何决定状态复制、状态迁移和恢复边界。Day04 讨论编码演进如何保证新旧组件共同理解同一份状态。Day05 讨论 Replication 如何把一致性问题包装成副本时空错乱。Day06 进入 DDIA 第六章:Partitioning。这一章不能写成“分库分表中间件配置手册”。分区的本质从来不是把大表切小,而是:在物理世界的无序中,强行划分负载、状态和权力的边界。0. 本篇边界:哪些内容必须砍掉?为了不把 Day06 写成普通分库分表教程,先明确本篇边界。本篇保留1. 热点 Key: 为什么哈希只能打散 Key,不能打散流量。 2. 二级索引: 为什么本地二级索引会制造 Scatter-Gather 尾延时地狱; 为什么全局二级索引会把单机写入逼成分布式事务。 3. 再平衡: 为什么自动化迁移状态可能把局部故障放大成全集群雪崩。 4. 路由失配: 为什么分区之后最难的不是数据切开,而是客户端、代理、控制面如何找到正确分区。本篇不写成一致性哈希概念介绍; 范围分片 vs 哈希分片优缺点表; 分库分表中间件功能说明; 数据库扩容操作手册; K8s 调度理论混入数据分区主线。K8s Zone、Pod Pending、PVC 绑定、节点标签、网络路径可以作为“位置约束失配”的辅助类比,但不能喧宾夺主。Day06 的主角仍然是数据分区。1. 案例原文 / 关联原文链接映射正文案例原文 / 关联原文链接说明技术笔记总入口喝醉酒的小白 CSDN 主页公开主页OceanBase 备份与高可用OceanBase 数据库备份与高可用全面解析:策略、架构与实践分布式数据库、多副本、备份恢复平台备份 / NFS / S3QFusion 数据库私有云平台研究报告备份存储、NFS、对象存储K8s 高可用 / 动态演进Kubernetes 高可用与动态演进技术笔记(最终版)调度、PDB、HPA/VPA、节点状态CNI / CSI / CRIKubernetes CNI、CSI 和 CRI 深度解析:技术实施与架构设计网络、存储、运行时接口网络路径 / VIP / 多网卡业务流量进出路径:来包由谁决定,回包由谁决定路由、网络路径、回包TiDB Shard Row ID BitsTiDB Shard Row ID Bits写入热点打散TiDB HotspotTroubleshoot Hotspot Issues热点问题定位TiDB Placement RulesPlacement Rules in SQL数据位置约束Vitess VindexVitess Vindexes分片路由、索引到 keyspace idCassandra PartitionApache Cassandra Data PartitioningPartition key、token、Dynamo 风格Dynamo PaperDynamo: Amazon’s Highly Available Key-value Storepartition、preference list、hinted handoff热点 Key / 秒杀商品内部案例,暂无公开原文单 Key 流量超过单分区能力本地二级索引 Scatter-Gather内部案例,暂无公开原文搜索条件与分区键不一致全局二级索引异步更新内部案例,暂无公开原文搜索到对象但对象不存在自动再平衡诱发雪崩内部案例,暂无公开原文状态迁移抢占网络 / I/OK8s Zone / PVC / Pod Pending内部案例,暂无公开原文位置约束、调度、存储绑定失配平台实例迁移 / 分片路由内部案例,暂无公开原文分区映射、路由缓存、迁移窗口2. Day06 总纲:分区不是切表,而是切负载、状态和故障半径DDIA 第六章讲 Partitioning。普通读法会把它读成:范围分区; 哈希分区; 一致性哈希; 二级索引; 再平衡; 请求路由;这些概念都对,但如果只停在这里,就会变成面试题。Partitioning 真正要回答的是:当单台机器无法承载全部数据和全部流量时, 系统如何把状态切成多个局部战场?分区的表面目标是:数据变小; 查询变快; 容量变大; 集群可扩展;但它的真实代价是:热点 Key 会把局部战场烧穿; 二级索引会把一次查询扩散到全局; 全局索引会把一次写入拖进分布式事务;