《设计数据密集型应用/DDIA》精要翻译(七) :Linearizability

定义和理解

Linearizability是常用的一致性模型(对于一致性模型,笔者后续会有专门的文章来讨论)之一,Linearizability也可以被称为原子一致性(atomic consistency),强一致性(strong consistency),立即一致性(immediate consistency)或外部一致性(external consistency )。

很难给Linearizability一个非常明确的定义,它的基本思路是:让整个数据系统看上去只有一个副本,并且所有的操作都是原子的。

对于上面那句话, 可以用下面的例子来稍作理解:

  • 图9-2想要阐明的一点是,一个写请求完成后,所有的读请求都应该读取到最新的值。
  • 图9-3想要说的是,当一个读请求返回新值后,所有后续读请求(无论是否是同一个客户端)都要返回新值。

如下图,用竖线来表示操作生效的时间点,那么如果我们要把这些时间点用线连起来,它应该是从左往右的,并且符合逻辑的。 下图中B最后的读取就是不符合逻辑的,所以那个读不是Linearizable的。

依赖Linearizability的场景

比如分布式锁: 当一个锁被client 1占有之后,我们希望别的client获取该锁的状态时,返回结果都是正在被client 1占有,而不是其他状态。

Linearizability, Serializability and Strict Serializability

(属于番外内容)
对于Linearizability、 Serializability、 Strict Serializability,我们往往会容易弄混, 可以参考: Linearizability, Serializability and Strict Serializability 来对他们的区别有更深入的理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值