专题:一致性
共7篇相关文章

非半数节点读取请求,会不会引发数据不一致疑虑?
先说结论: 会!而且非常容易出现不一致。 但 ZooKeeper 官方默认配置,已经帮你规避了这个问题,所以正常使用下你感觉不到。 下面用最直白的逻辑讲清楚: 什么时候会不一致、ZK 怎么解决、以及你如果乱配置会踩什么坑。 1. 直接回答:...

缓存(Cache)是一种计算机存储技术,用于提高数据访问速度。它通过将频繁访问的数据存储在快速访问的存储介质中,以减少对主存储器(如硬盘)的访问次数,从而提高整个系统的性能。### 缓存的基本概念1. **存储介质**:缓存通常使用比主存储器(如RAM)更
这是后端面试必考、工程必踩的核心问题:更新数据库时,怎么保证缓存里的数据是对的? 我给你讲得原理通透、方案落地、能直接写进架构文档。 一、先搞懂:为什么会不一致? 本质只有一句话: 缓存和数据库是两个独立存储,无法原子更新。 只要是「先操作...

缓存三大问题(击穿、穿透、雪崩)原理及解决方案是什么?
缓存的击穿、穿透、雪崩是后端开发中高频出现、极易引发服务雪崩的核心问题,三者看似相似但原理和解决方案完全不同。本文用「原理+场景+落地方案+代码」的形式,一次性讲透,看完就能直接落地到生...

MySQL两阶段提交(2PC)如何确保redo log与binlog一致性底层逻辑究竟是怎样的?
关于事务持久性和一致性,接下来我会从为什么需要2PC、2PC完整执行流程、崩溃恢复的具体判断逻辑三个维度,把这个知识点讲透,让你不仅知其然,更知其所以然。 一、为什么必须引入两阶段提交? 首先要明确:redo log(InnoDB层)和bi...

MySQL两阶段提交(2PC)具体执行流程是怎样的?
两阶段提交(2PC)是MySQL保证redo log(InnoDB层) 和binlog(Server层) 一致性的核心机制,其执行流程严格分为「Prepare阶段」和「Commit阶段」,每个阶段都有明确的核心动作、数据状态变化和异常处理逻...

MySQL高并发下undo log版本链回滚,同一行数据回滚的底层细节是如何构建的?
在MySQL InnoDB高并发写同一行数据的场景中,undo log版本链是保证事务原子性、实现MVCC的核心。当版本链中某条事务回滚时,InnoDB并非简单“删除”该事务的版本记录,而是通过回滚指针(roll_pointer) 逆向遍历...

MySQL高并发下,undo log版本链数量、生成时机和深度如何解析?
两个核心问题——“高并发下多个事务是否生成undo log多版本链”“undo log是否加锁后才生成”,是理解InnoDB事务一致性和并发控制的关键。本文结合高并发场景,从版本链本质、生成时机、锁与undo log的关联逻辑三个维度,给出...
