加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

当数据库碰着漫衍式,你会怎么做?

发布时间:2020-03-08 03:46:43 所属栏目:编程 来源:站长网
导读:副问题#e# 数据库凡是有着完美的事宜支持,可是范围于单机的存储和机能,于是就呈现了各类漫衍式办理方案。最近读了《Designing Data-Intensive Applications》这本书,以是做一个总结,供各人做个参考,有什么差池的请各人指正,一路接头。 数据模子 数据

因果同等性实现的难点在于怎样界说和捕捉因果相关,你必要知道哪个操纵产生在哪个操纵之前(happen before)。可是这种因果相关更多是来自上层应用,底层存储是无法感知的,以是跟踪全部的因果相关是不及现实的。

因果相关的操纵在时序上必然是有先后,以是通过全序的的序列化或时刻戳(逻辑时钟)来排序操纵,这样全部的操纵都有了时刻上的因果先后相关。以是线性同等性是全部操纵都满意因果同等性(纵然大部门操纵没有依靠相关)。

最终同等性

最终同等性不能算是同等性模子,没有任何同等性担保,只是说在没有更新的环境下,副本之间会在一按时刻内保持同等。由于因为收集耽误的存在,应用任何时辰都也许读取到纷歧致的数据。可以说是可接管的最弱的同等性模子。

以客户端为中心

上面接头的以数据存储为视角的同等性,在因果同等性以及更强的同等性模子中,从客户端而言是不会产生预料之外的读写题目的。可是在更弱的同等性模子而言,呈现各类读写题目。

以客户端为中心的同等性为单一客户端提供同等性担保,担保该客户端对数据存储的会见的同等性,可是它不为差异客户端的并发会见提供任何同等性担保。

以客户端为中心的同等性包括了四种模子:

单调读同等性(Monotonic-read Consistency):假如一个历程读取数据项 x 的值,那么该历程对付 x 后续的全部读操纵要么读取到第一次读取的值要么读取到更新的值。即担保客户端不会读取到旧值。

单调写同等性(Monotonic-write Consistency):一个历程对数据项 x 的写操纵必需在该历程对 x 执行任何后续写操纵之前完成。即担保客户端的写操纵是串行的。

读写同等性(Read-your-writes Consistency):一个历程对数据项 x 执行一次写操纵的功效老是会被该历程对 x 执行的后续读操纵望见。即担保客户端能读到本身最新写入的值。

写读同等性(Writes-follow-reads Consistency):统一个历程对数据项 x 执行的读操纵之后的写操纵,担保产生在与 x 读取值沟通或比之更新的值上。即担保客户端对一个数据项的写操纵是基于该客户端最新读取的值。

可是真实环境是,因为处事器负载平衡以及处事器妨碍的存在,会导致客户端会话会产生转移,因此基于客户端会见的同等性模子是不靠谱的。

共鸣协议

Lamport时刻戳

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读