加载中...
读修复是最终一致性分布式数据库中的一种自动一致性修复机制。当客户端读取多个副本发现数据不一致时,系统会以最新版本为准更新落后的副本,从而在读取过程中顺带修复分歧,提升整体数据一致性。

| 中文名 | 读修复 |
| 英文名 | Read Repair |
| 类型 | 一致性修复机制 |
| 一致性模型 | 最终一致性 |
| 典型系统 | Cassandra、Dynamo |
读修复(Read Repair)是分布式数据库为维护副本一致性而采用的一种被动修复机制。在读取数据时,系统会比较多个副本返回的值,一旦发现某些副本数据陈旧,就用最新的值去更新它们,在服务读请求的同时顺手修正不一致。
在采用最终一致性的去中心化数据库中,同一份数据被复制到多个节点,写入可能因网络分区或节点故障而未能同步到全部副本,造成副本间分歧。读修复与提示移交、反熵修复共同构成这类系统的一致性保障手段,其特点是不额外发起后台任务,而是搭乘正常读请求完成修复。
读修复是Apache Cassandra、Amazon Dynamo、Riak等最终一致性数据库的核心机制之一。它特别适合读多写少或对可用性要求高的场景,让频繁被访问的热点数据自然而然地保持一致;对于长期无人读取的冷数据,则需依赖反熵等其他机制来兜底修复。
问:读修复能保证所有数据始终一致吗?答:不能。它只修复被读取到的数据,冷门数据可能长期不被访问从而得不到修复,因此系统还需结合定期反熵扫描等机制。
问:读修复会增加读延迟吗?答:阻塞式读修复会在返回前等待写回完成,可能略增延迟;后台读修复则不影响响应时间,由系统权衡一致性与延迟后选择。

| 中文名 | 读修复 |
| 英文名 | Read Repair |
| 类型 | 一致性修复机制 |
| 一致性模型 | 最终一致性 |
| 典型系统 | Cassandra、Dynamo |
登录 后参与讨论
暂无讨论,来发表第一条评论吧