Day05|用生产硬核笔记逆向解构《DDIA》:Quorum、LWW 与读写分离背后的三场一致性幻觉 发布时间:2026/6/24 17:52:54 文章目录Day05|Replication:Quorum、LWW 与读写分离背后的三场一致性骗局0. 本篇边界:哪些案例必须砍掉?本篇保留本篇不讲1. 案例原文 / 关联原文链接映射2. Day05 总纲:Replication 不是高可用技术,而是对不一致性的工程化包装3. 单主复制:MySQL / PostgreSQL / Oracle ADG 的真正问题不是延迟,而是读一致性3.1 生产表象与链路3.2 认知盲区一:把复制延迟当性能指标,忽略客户端语义3.3 幽灵状态一:读己之所写断层3.4 用 GTID / LSN 做 Causal Token:正确,但不是银弹MySQL GTIDPostgreSQL LSNOracle ADG3.5 第六刀:砍掉应用层托底的“路由幻觉”4. 幽灵状态二:单调读断层 —— 用户刷新页面,时间反而倒退4.1 生产表象4.2 分布式本源4.3 治理机制:Session Stickiness 与水位线方案一:Session 绑定方案二:会话水位线方案三:延迟感知读路由4.4 反证思维:负载均衡越均匀越好吗?5. 幽灵状态三:一致前缀读断层 —— 因果顺序被副本延迟打乱5.1 生产表象5.2 单主复制里也可能出现一致前缀问题6. 多主复制:真正的问题不是双写,而是冲突语义6.1 多主复制的诱惑6.2 第五刀:砍掉 LWW 的遮羞布6.3 并发的真正定义:不是物理时间,而是 Happens-Before7. 无主复制:Quorum 不是强一致,而是概率性求生7.1 生产表象与模型7.2 第四刀:砍掉 W + R N 的数学乌托邦漏洞一:Sloppy Quorum 的背叛漏洞二:并发写覆盖的无解漏洞三:半成功写污染7.3 Quorum 到底保证了什么?7.4 Vector Clock:不是时间戳,而是因果关系记录7.5 Read Repair:读不是只读,而是修复的一部分7.6 Sloppy Quorum 与 Hinted Handoff:高可用背后的债务7.7 反证思维:最终一致性是不是“迟早会对”?8. Day05 提炼出的新复制模板示例一:MySQL 主备读延迟导致读己之所写断层示例二:PostgreSQL 备库读导致单调读断层示例三:多主复制导致冲突覆盖示例四:无主复制并发写产生 siblings9. Day05 最终收束10. Day06 预告:第六章 PartitioningDay05|Replication:Quorum、LWW 与读写分离背后的三场一致性骗局Day01 讨论故障传播、负载放大、状态不可见。Day02 讨论数据模型如何决定系统能看见什么关系。Day03 讨论存储结构如何决定状态复制、状态迁移和恢复边界。Day04 讨论编码演进如何保证新旧组件共同理解同一份状态。Day05 进入 DDIA 第五章:Replication。这一章不能写成“主备同步配置手册”,也不能把 Sentinel、Lease、Raft、Paxos 全塞进来。第五章真正要讲的是:复制不是让数据天然一致,而是在多个副本必然不一致的物理现实下,设计一套可接受的谎言边界。0. 本篇边界:哪些案例必须砍掉?为了不把第五章写成概念乱炖,先明确本篇边界。本篇保留单主复制: MySQL、PostgreSQL、Oracle ADG。 多主复制: 跨机房多活、双写、冲突解决。 无主复制: Dynamo 风格系统、quorum 读写、vector clock、read repair、sloppy quorum、hinted handoff。本篇不讲Redis Sentinel: 它是主身份裁决与故障转移机制,不是用户数据复制模型本身。 K8s Lease: 它是控制面心跳 / 分布式锁 / 身份观测机制,不是数据复制。 etcd / Raft: 它属于共识复制,应该放到 Day09 Consistency and Consensus。 OceanBase / Paxos: 它属于多副本共识与事务一致性,不应该在第五章提前透支。这不是说 Sentinel、Lease、Raft、Paxos 不重要。恰恰相反,它们太重要,所以不能在第五章提前抢跑。第五章必须先把最基础、最危险、最普遍的异步复制异常讲透:副本滞后时,客户端到底会看到哪些鬼故事?1. 案例原文 / 关联原文链接映射正文案例原文 / 关联原文链接说明技术笔记总入口喝醉酒的小白 CSDN 主页公开主页MySQL 主备读延迟MySQL 中间件+主备读延迟问题说明读写分离、主备延迟MySQL 主从 / 主备MySQL 主从和主备的区别主从、主备语义差异MySQL GTID 差异MySQL:主备库的 GTID 差异,从而判断主备库的同步状态GTID 集合与同步状态MySQL 增强半同步切换MySQL 增强半同步模式下主备切换后原主 GTID 更大的原因分析半同步、GTID、切换边界MySQL 主从切换 GTIDMySQL 主从切换 GTID 不一致问题分析与解决方案切换前后 GTID 一致性MySQL 多线程复制MySQL 多线程复制(MTS)性能统计并行回放、复制延迟MySQL GTID 官方文档MySQL Replication with Global Transaction IdentifiersGTID 用于事务标识与复制MySQL GTID 函数MySQL GTID Functions等待副本到达指定复制位置PostgreSQL 流复制和 Oracle ADG 归档对比PostgreSQL 流复制和 Oracle ADG 关于归档的要求对比WAL / redo / archive 差异PostgreSQL 官方流复制PostgreSQL Log-Shipping Standby ServersWAL shipping、standby、级联复制PostgreSQL LSN 函数PostgreSQL Admin FunctionsWAL LSN、replay LSN、flush LSNOracle Data Guard 日志传输Oracle Data Guard 日志传输的底层协议解析LGWR / ARCH / RFS / MRPOracle ADG FALOracle ADG FAL 参数配置与验证指南归档缺口自动拉取Oracle Data Guard 官方概念Oracle Data Guard ConceptsRedo Transport Services / Apply ServicesOracle Apply ServicesOracle Data Guard Apply Servicesredo apply 与同步Dynamo PaperDynamo: Amazon’s Highly Available Key-value Storequorum、vector clock、sloppy quorum、hinted handoffRiak ConceptsRiak Conceptsvector clock、siblings、eventual consistencyCassandra ConsistencyApache Cassandra ConsistencyDynamo 风格复制、quorum、一致性级别MySQL / PG 读己之所写异常内部案例,暂无公开原文GTID / LSN 作为因果令牌跨机房多主写冲突内部案例,暂无公开原文冲突检测、冲突解决、业务合并无主复制并发写冲突内部案例,暂无公开原文vector clock、read repair、last write wins 风险高峰期备库延迟击穿主库内部案例,暂无公开原文causal token 读路由、主库读放大、降级取舍2. Day05 总纲:Replication 不是高可用技术,而是对不一致性的工程化包装DDIA 第五章讲 Replication。普通读法容易把它读成: 相关新闻 redis_点评(24.好友关注—实现关注推送页面的「滚动分页查询」) 这是基于Redis ZSet 实现的「关注流滚动分页」完整代码,解决了传统分页在关注流场景下的性能与一致性问题,实现了类似朋友圈的“下拉加载更多”效果。一、整体架构概览层级核心内容作用Controller新增 /of/follow 接口,接收滚动分页参数接收前… 2026/6/13 2:53:48 Arduino与PIR传感器构建智能运动检测系统:从原理到实战 1. 项目概述:从零构建一个可靠的智能运动检测系统如果你对智能家居、安防监控或者自动化项目感兴趣,那么运动检测绝对是你绕不开的一个核心功能。无论是想实现“人来灯亮,人走灯灭”的自动照明,还是搭建一个简易的入侵报警器&… 2026/6/24 17:52:36 【OFDM通信】室内NOMA-OFDM-VLC系统Matlab仿真 ✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 dz… 2026/6/23 23:01:11 最新新闻 Ollama企业级局域网部署:从localhost:11434到稳定AI基建 1. 为什么“企业级局域网模型本地部署”不是一句空话,而是真实可落地的生产力基建“企业级局域网模型本地部署”这九个字,最近在技术圈被反复刷屏,但很多人点开教程,看到的却是“三步跑通Qwen3:4b”“Ollama一键安装”… 2026/6/24 17:22:47 深入理解Nmap:从端口扫描原理到实战安全评估 1. 项目概述:为什么我们需要“深入理解”Nmap?如果你在运维、安全测试或者网络管理的圈子里待过一阵子,Nmap这个名字对你来说,就像螺丝刀对木匠一样熟悉。但说实话,很多人对它的认知,可能还停留在“一个用来… 2026/6/24 17:22:47 嵌入式以太网调优:深入解析MAC-FIFO与CAM过滤器配置实战 1. 项目概述:为什么需要关注MAC-FIFO寄存器?如果你正在调试一块带有以太网功能的嵌入式板卡,比如基于CH32V307、STM32F407或者ESP32-C3搭配W5500模块的方案,你可能已经顺利配置了PHY、初始化了DMA,甚至能收到数据包了。… 2026/6/24 17:22:47 MATLAB特征值求解优化:从算法选择到预处理实战 1. 项目概述:当矩阵特征值遇上“相亲” 如果你在工程计算、物理模拟或者机器学习领域摸爬滚打过一阵子,肯定对“矩阵特征值”这个概念又爱又恨。爱的是,它揭示了系统最本质的振动模式、稳定性判据和数据的主成分;恨的是࿰… 2026/6/24 17:22:47 MPC855T硬件调试机制:从断点、观察点原理到实战配置 1. MPC855T调试技术:从硬件原理到实战应用在嵌入式系统开发,尤其是像MPC855T这类高性能PowerPC处理器的开发中,调试往往是决定项目成败的关键。当你的代码在目标板上跑飞,或者某个内存地址的数据在某个神秘时刻被意外改写时&#… 2026/6/24 17:22:47 AI Coding与AI Agent的本质区别:从代码生成到决策闭环 1. 先划清边界:AI Coding 不是 AI Agent 的子集,也不是它的前置课 很多人一看到“AI Coding”和“AI Agent”,下意识就套用“编程→应用”的线性认知——觉得AI Coding是写代码的工具,AI Agent是跑起来的智能体,所以“… 2026/6/24 17:15:48 日新闻 TaskJuggler脚本编程入门:用代码实现自动化项目管理 TaskJuggler脚本编程入门:用代码实现自动化项目管理 【免费下载链接】TaskJuggler TaskJuggler - Project Management beyond Gantt chart drawing 项目地址: https://gitcode.com/gh_mirrors/ta/TaskJuggler TaskJuggler是一款强大的开源项目管理工具&#… 2026/6/24 0:22:42 终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果 终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果 【免费下载链接】angular-mobile-nav An angular navigation service for mobile applications 项目地址: https://gitcode.com/gh_mirrors/an/angular-mobile-nav angular-mobile-nav是一款专为… 2026/6/24 0:22:42 Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作 Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作 【免费下载链接】Wan2.1-Fun-V1.1-1.3B-InP 项目地址: https://ai.gitcode.com/hf_mirrors/PAI/Wan2.1-Fun-V1.1-1.3B-InP Wan2.1-Fun-V1.1-1.3B-InP是一款强大的AI视频创作工具,… 2026/6/24 0:22:42 周新闻 第四章:本体推理的技术基础设施 当LLM不够用了——本体推理的企业决策实践第三章讲了"怎么落地"的方法论。这一章聚焦在"落地靠什么"——推理的技术基础设施。 如果说前三章是在论证"为什么要做本体推理"和"怎么做才能不失败",那么从这一章开始࿰… 2026/6/24 17:34:30 OpenClaw:本地AI工作流的可编程调度中枢 1. OpenClaw不是“另一个前端界面”,而是本地AI工作流的中枢调度器很多人第一次看到 OpenClaw,下意识会把它当成 ComfyUI 或 Ollama Web UI 那类图形化前端——点几下就能调模型、聊聊天。我最初也这么想,直到在 Ubuntu 24.04.4 的移动硬盘虚… 2026/6/24 17:34:33 3分钟打造你的游戏隐身衣:用Deceive重新掌控社交边界 3分钟打造你的游戏隐身衣:用Deceive重新掌控社交边界 【免费下载链接】Deceive 🎩 Appear offline for League of Legends, VALORANT, and Legends of Runeterra. 项目地址: https://gitcode.com/gh_mirrors/de/Deceive 你是否曾因为登录游戏就被… 2026/6/24 17:34:35 月新闻 仅剩47小时!Gemini 2.5欧洲语言模型权重微调窗口即将关闭:3个轻量级LoRA适配器+1套验证集,零代码快速部署 更多请点击: https://codechina.net 第一章:Gemini 2.5欧洲语言翻译能力演进与窗口期战略意义 Gemini 2.5在欧洲语言支持方面实现了质的跃升,尤其在德语、法语、西班牙语、意大利语及葡萄牙语的长上下文跨语言对齐、术语一致性保持和文化语境… 2026/6/24 0:01:03 【Gemini客户反馈分析实战指南】:20年AI产品专家亲授3大高价值洞察模型与落地工具包 更多请点击: https://kaifayun.com 第一章:Gemini客户反馈分析的核心价值与演进脉络 在AI产品持续迭代的背景下,Gemini模型的客户反馈已从早期零散的体验吐槽,逐步演变为结构化、多模态、实时驱动的关键决策依据。其核心价值不仅… 2026/6/24 0:01:03 Gemini用户差评聚类分析:3大隐性需求缺口暴露,错过本周将影响Q3产品迭代优先级 更多请点击: https://intelliparadigm.com 第一章:Gemini用户差评聚类分析:3大隐性需求缺口暴露,错过本周将影响Q3产品迭代优先级 我们对2024年6月1日–6月28日期间App Store与Google Play中含“Gemini”关键词的12,743条低分&a… 2026/6/23 21:00:27
redis_点评(24.好友关注—实现关注推送页面的「滚动分页查询」) 这是基于Redis ZSet 实现的「关注流滚动分页」完整代码,解决了传统分页在关注流场景下的性能与一致性问题,实现了类似朋友圈的“下拉加载更多”效果。一、整体架构概览层级核心内容作用Controller新增 /of/follow 接口,接收滚动分页参数接收前… 2026/6/13 2:53:48
Arduino与PIR传感器构建智能运动检测系统:从原理到实战 1. 项目概述:从零构建一个可靠的智能运动检测系统如果你对智能家居、安防监控或者自动化项目感兴趣,那么运动检测绝对是你绕不开的一个核心功能。无论是想实现“人来灯亮,人走灯灭”的自动照明,还是搭建一个简易的入侵报警器&… 2026/6/24 17:52:36
【OFDM通信】室内NOMA-OFDM-VLC系统Matlab仿真 ✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 dz… 2026/6/23 23:01:11
Ollama企业级局域网部署:从localhost:11434到稳定AI基建 1. 为什么“企业级局域网模型本地部署”不是一句空话,而是真实可落地的生产力基建“企业级局域网模型本地部署”这九个字,最近在技术圈被反复刷屏,但很多人点开教程,看到的却是“三步跑通Qwen3:4b”“Ollama一键安装”… 2026/6/24 17:22:47
深入理解Nmap:从端口扫描原理到实战安全评估 1. 项目概述:为什么我们需要“深入理解”Nmap?如果你在运维、安全测试或者网络管理的圈子里待过一阵子,Nmap这个名字对你来说,就像螺丝刀对木匠一样熟悉。但说实话,很多人对它的认知,可能还停留在“一个用来… 2026/6/24 17:22:47
嵌入式以太网调优:深入解析MAC-FIFO与CAM过滤器配置实战 1. 项目概述:为什么需要关注MAC-FIFO寄存器?如果你正在调试一块带有以太网功能的嵌入式板卡,比如基于CH32V307、STM32F407或者ESP32-C3搭配W5500模块的方案,你可能已经顺利配置了PHY、初始化了DMA,甚至能收到数据包了。… 2026/6/24 17:22:47
MATLAB特征值求解优化:从算法选择到预处理实战 1. 项目概述:当矩阵特征值遇上“相亲” 如果你在工程计算、物理模拟或者机器学习领域摸爬滚打过一阵子,肯定对“矩阵特征值”这个概念又爱又恨。爱的是,它揭示了系统最本质的振动模式、稳定性判据和数据的主成分;恨的是࿰… 2026/6/24 17:22:47
MPC855T硬件调试机制:从断点、观察点原理到实战配置 1. MPC855T调试技术:从硬件原理到实战应用在嵌入式系统开发,尤其是像MPC855T这类高性能PowerPC处理器的开发中,调试往往是决定项目成败的关键。当你的代码在目标板上跑飞,或者某个内存地址的数据在某个神秘时刻被意外改写时&#… 2026/6/24 17:22:47
AI Coding与AI Agent的本质区别:从代码生成到决策闭环 1. 先划清边界:AI Coding 不是 AI Agent 的子集,也不是它的前置课 很多人一看到“AI Coding”和“AI Agent”,下意识就套用“编程→应用”的线性认知——觉得AI Coding是写代码的工具,AI Agent是跑起来的智能体,所以“… 2026/6/24 17:15:48
TaskJuggler脚本编程入门:用代码实现自动化项目管理 TaskJuggler脚本编程入门:用代码实现自动化项目管理 【免费下载链接】TaskJuggler TaskJuggler - Project Management beyond Gantt chart drawing 项目地址: https://gitcode.com/gh_mirrors/ta/TaskJuggler TaskJuggler是一款强大的开源项目管理工具&#… 2026/6/24 0:22:42
终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果 终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果 【免费下载链接】angular-mobile-nav An angular navigation service for mobile applications 项目地址: https://gitcode.com/gh_mirrors/an/angular-mobile-nav angular-mobile-nav是一款专为… 2026/6/24 0:22:42
Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作 Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作 【免费下载链接】Wan2.1-Fun-V1.1-1.3B-InP 项目地址: https://ai.gitcode.com/hf_mirrors/PAI/Wan2.1-Fun-V1.1-1.3B-InP Wan2.1-Fun-V1.1-1.3B-InP是一款强大的AI视频创作工具,… 2026/6/24 0:22:42
第四章:本体推理的技术基础设施 当LLM不够用了——本体推理的企业决策实践第三章讲了"怎么落地"的方法论。这一章聚焦在"落地靠什么"——推理的技术基础设施。 如果说前三章是在论证"为什么要做本体推理"和"怎么做才能不失败",那么从这一章开始࿰… 2026/6/24 17:34:30
OpenClaw:本地AI工作流的可编程调度中枢 1. OpenClaw不是“另一个前端界面”,而是本地AI工作流的中枢调度器很多人第一次看到 OpenClaw,下意识会把它当成 ComfyUI 或 Ollama Web UI 那类图形化前端——点几下就能调模型、聊聊天。我最初也这么想,直到在 Ubuntu 24.04.4 的移动硬盘虚… 2026/6/24 17:34:33
3分钟打造你的游戏隐身衣:用Deceive重新掌控社交边界 3分钟打造你的游戏隐身衣:用Deceive重新掌控社交边界 【免费下载链接】Deceive 🎩 Appear offline for League of Legends, VALORANT, and Legends of Runeterra. 项目地址: https://gitcode.com/gh_mirrors/de/Deceive 你是否曾因为登录游戏就被… 2026/6/24 17:34:35
仅剩47小时!Gemini 2.5欧洲语言模型权重微调窗口即将关闭:3个轻量级LoRA适配器+1套验证集,零代码快速部署 更多请点击: https://codechina.net 第一章:Gemini 2.5欧洲语言翻译能力演进与窗口期战略意义 Gemini 2.5在欧洲语言支持方面实现了质的跃升,尤其在德语、法语、西班牙语、意大利语及葡萄牙语的长上下文跨语言对齐、术语一致性保持和文化语境… 2026/6/24 0:01:03
【Gemini客户反馈分析实战指南】:20年AI产品专家亲授3大高价值洞察模型与落地工具包 更多请点击: https://kaifayun.com 第一章:Gemini客户反馈分析的核心价值与演进脉络 在AI产品持续迭代的背景下,Gemini模型的客户反馈已从早期零散的体验吐槽,逐步演变为结构化、多模态、实时驱动的关键决策依据。其核心价值不仅… 2026/6/24 0:01:03
Gemini用户差评聚类分析:3大隐性需求缺口暴露,错过本周将影响Q3产品迭代优先级 更多请点击: https://intelliparadigm.com 第一章:Gemini用户差评聚类分析:3大隐性需求缺口暴露,错过本周将影响Q3产品迭代优先级 我们对2024年6月1日–6月28日期间App Store与Google Play中含“Gemini”关键词的12,743条低分&a… 2026/6/23 21:00:27