You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在仅支持Serializability不提供Linearizability的数据库实现Optimistic Offline Lock?

关于乐观离线锁与线性一致性的困惑

我正在研究乐观离线锁模式,查阅资料后发现:多数资料指出使用支持可串行化隔离(部分资料认为可重复读级别已足够)的关系型数据库,即可无并发问题地实现该模式,并未提及需要事务具备线性一致性。比如PostgreSQL就不提供线性一致性,相关资料提到:

采用快照隔离/MVCC的数据库会刻意设计为非线性一致性,因为强制线性一致性会降低数据库的并发能力。例如PostgreSQL的SSI提供可串行化但不提供线性一致性,Oracle则两者都不具备。并非标有“ACID”的数据库就符合CAP定理定义的一致性。

但我的困惑在于:乐观离线锁本质上是比较并交换/更新操作,那它是不是也需要线性一致性?相关资料指出:

由于比较并交换操作(或看起来)是瞬时发生的,若在操作进行中有其他进程更新了目标位置,比较并交换操作将确保失败。

参考资料

  • 《乐观离线锁模式》(Martin Fowler)
  • 《强一致性模型》(Aphyr)
  • 《请停止称数据库为CP或AP》(Martin Kleppmann)
  • 《线性一致性维基百科条目》

内容的提问来源于stack exchange,提问作者S Lover

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 13:05:32