版本向量
维护一个计数器列表,每个集群节点一个,以检测并发更新
问题
如果多个服务器允许更新同一个键,则在跨一组副本并发更新值时,重要的是检测到这种情况。
解决方案
每个键值都与一个版本向量相关联,该向量为每个集群节点维护一个数字。
本质上,版本向量是一组计数器,每个节点一个。三个节点(蓝色、绿色、黑色)的版本向量看起来像这样:[blue: 43, green: 54, black: 12]
。每次节点进行内部更新时,它都会更新自己的计数器,因此绿色节点的更新会将向量更改为[blue: 43, green: 55, black: 12]
。每当两个节点通信时,它们会同步其向量戳,从而允许它们检测任何同时更新。
有关更多详细信息,请访问第 18 章,该章节位于 oreilly.com 上的在线电子书中。
此模式是分布式系统模式的一部分。
2023 年 11 月 23 日