知识卡片

租约读守住单Key线性

普通读书笔记卡 · 1724.a

内容

CockroachDB range 由 leaseholder 服务读写,结合最大时钟偏差提前停止旧租约服务,保证新租约开始后旧副本不会继续读旧值。发散:本地时钟也能服务一致性,但必须为误差留出不可服务窗口。

参考来源

- 位置:《分布式系统与一致性》第9章《分布式数据库CockroachDB》leaseholder一节(源文件:_epub-src/OEBPS/Text/chapter13.xhtml) - 结论依据:原文明确"为了适应这种250ms的差异,leaseholder在租约开始到租约结束的时间减去最大误差时间内可以服务于读/写请求,其他副本要在租约结束之后才能成为新的leaseholder",并总结"减去最大时钟误差,保证旧的leaseholder在新的leaseholder开始服务于写请求后就不会再服务于任何读请求了……对单个key的读/写达到线性一致性"。 - 原始内容:为了适应这种250ms的差异,leaseholder在租约开始到租约结束的时间减去最大误差时间内可以服务于读/写请求,其他副本要在租约结束之后才能成为新的leaseholder……减去最大时钟误差,保证旧的leaseholder在新的leaseholder开始服务于写请求后就不会再服务于任何读请求了,所以旧的leaseholder就不会读取到旧数据,对单个key的读/写达到线性一致性。