知识卡片
租约降低强读成本
内容
Spanner 用 TrueTime 管理 leader 租约,让 leader 在租约有效期内本地读而不联系其他副本;新旧租约不重叠,避免网络分区下陈旧读。发散:强读性能常来自“提前取得权威”,而非每次请求现场投票。
参考来源
- 位置:《分布式系统与一致性》第8章《Google的Spanner数据库》"8.4.3 TrueTime管理leader租约"一节(源文件:_epub-src/OEBPS/Text/chapter12.xhtml)
- 结论依据:原文明确"primary角色通过租约(lease)来维护自己的primary地位……如果primary持有从大多数backup发来的租约,那么它就可以单方面进行读操作,而不用联系其他副本。如果发生网络分区,那么新选出来的primary在所有旧的primary的租约过期之前是不能处理任何客户端请求的",并说明"Spanner的读操作过程也采用等待方式来保证每个leader的租约范围不会相互重叠"。
- 原始内容:primary角色通过租约(lease)来维护自己的primary地位……如果primary持有从大多数backup发来的租约,那么它就可以单方面进行读操作,而不用联系其他副本。如果发生网络分区,那么新选出来的primary在所有旧的primary的租约过期之前是不能处理任何客户端请求的,从而保证了在发生网络分区的情况下也不会有陈旧读……Spanner的读操作过程也采用等待方式来保证每个leader的租约范围不会相互重叠。