分布式系统复制和一致性(1)模型分析

为什么要复制?

多副本的存在是提升一个分布式系统可靠性、可用性、性能以及可扩展性的必要手段。

  1. 可靠性 : 如果一个文件系统已经实现数据复制,那么当一个副本破坏后,,文件只需要转换到另外一个副本继续运行下去;防止数据破坏,假设有三个文件副本,都可以在各自的副本进行读写操作,这时可以保护数据不会因为一个失败的写操作而受到破坏,因为此时至少有两个副本的值是正确的。
  2. 性能:当服务器需要进行数量和地域的扩展,需要减少访问的负荷, 这时就需要复制。

复制引发的问题

一致性!!!副本或者缓存都存在过时的问题(无效),副本与副本、副本与缓存之间的一致性问题。
完全同步化所有副本(强一致性):关键思想单个原子操作或事务的形式在所有副本上执行更新,更新本地副本时,需要将其他副本一并更新,才算执行成功。缺点:副本可能扩散在广域网中,快速更新是不可能,性能差。
所有我们需要放宽一致性的要求,避免(瞬间)全局同步,在性能和一致性做出一个平衡(性能提升,付出的代价是各个副本可能不总一致),例如之前数据库的事务隔离等级,所有便有了一致性模型

一致性模型

这类模型提出了进程与数据存储之间的协议。进程遵守规定,那么就可以进行数据存储。
正常情况下,一个进程在一个数据项上执行读操作时,它期待的应该是该数据最后一次写操作之后的结果。
但是没有全局时钟的情况下,很难精确定义哪次写操作是最后一次。模型就是来限制定义在一个数据项上进行一次读操作所返回的值。

以数据中心为一致性模型

顺序一致性

所有进程看到一个相同的总体读写操作顺序,且每个进程上的操作也依序出现在这个总体操作顺序中,属于强一致性。

顺序一致性包含两层含义<1>进程必须按照程序指定的顺序执行程序,不能重排操作;<2>所有进程上的操作就好像以某种总体顺序执行且所有进程看到的总体顺序均相同,每个进程的操作在总体顺序中出现的顺序和它自身的相同。

满足顺序一致性

顺序一致,因为尽管P3和P4首先读取'x'的值作为a然后b,但它们都具有相同的视图。

非顺序一致性

因果一致性(Causal Consistency )

所有进程中有因果关系的读写操作必须是顺序一致性的,没有因果关系的操作可以乱序执行,这种一致性强度要弱于顺序一致性。但是在工程实践中确定所有操作间的因果关系并不是一件容易的事情。

cmu440上的:
对于数据存储被认为是因果一致的,必须遵守以下条件:

  1. 写入可能与因果关系...
    • 必须被所有流程看到
    • 以相同的顺序。
  2. 并发写入...
    • 可能会以不同的顺序被看到
    • 在不同的机器上。

这里有什么因果关系?
进程P1写入一个数据项x。 然后P2读取数据项x,并写入y。 在这个例子中,因为y可能取决于x,所以P1和P2可能是因果相关的。
或者,如果P1和P2正在写入两个同时并且彼此不相关的不同数据项,则它们被认为是并发的。

总结:所有进程必须以相同的顺序看到具有潜在因果关系的写操作,不同的机器上可以以不同的顺序看到并发的写操作。

image.png

注意:P1:W(x)c和P2:W(x)b是并发的,所以它并不重要,所有进程都以相同的顺序看到它们
然而,Wx(a)和R(x)a然后W(x)b是潜在的因果关系,因此它们必须是有序的。

侵犯了因果关系一致的存储

P2 W(x)b可能因果关系地表示为W(x)a - 例如,它可能是P2中读取值的结果:R(x)a,因此这两个写入是因果关系的。
如果是这样,那么P3和P4必须以相同的顺序看到它们,而并发输出是不正确的并且违反因果一致的顺序。

在因果一致的存储中正确的事件序列。

在这个图中,P1:W(x)a与P2:W(x)b并发出现,因此它们不是因果相关的,因此P3和P4可以按照不同的顺序看到它们 - 所以可以。

总结:如果是因果关系的话,其他进程读结果必须是一致的顺序;非因果关系即并发 写入,其他进程读结果可以是不同的

以客户为中心的一致性模型(cmu440上没讲,以后补充)

用户级一致性定义中的“进程”可以认为是具体应用场合中的一个会话或客户等参与者。
(1)单调读一致性(monotonic-read):如果一个进程读取数据项X的值,那么该进程后续任何读取X值的操作都将得到那个值或者更新的值。单调读一致性从时间的维度上保证了如果进程在t时刻看到了X的值,那么以后不会在看到较老版本的值。
(2)单调写一致性(monotonic-write):一个进程对数据项X执行的写操作必须在该进程对数据项X执行的任何后续写操作之前完成。单调写一致性同以数据为中心的FIFO一致性类似,本质是同一进程上执行的写操作必须在任何地方以正确的顺序执行。单调写一执行保证在一个副本上执行数据更新时,在此之前(其它副本上执行的)的所有数据更新都将首先执行。
(3)写后读一致性(read-your-write):一个进程对数据项X执行的写操作总是被该进程后续对X的读操作看见。一个写操作总是在同一进程执行的后续读操作之前完成,不管这个读操作是发生在哪个副本。
(4)读后写一致性(write-following-read):同一个进程对数据项X执行的读操作后的写操作,保证发生在与读取的X值相同或更新的值上。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,743评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,296评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,285评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,485评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,581评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,821评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,960评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,719评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,186评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,516评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,650评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,936评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,757评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,991评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,370评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,527评论 2 349

推荐阅读更多精彩内容

  • 分布式系统面临的第一个问题就是数据分布,即将数据均匀地分布到多个存储节点。另外,为了保证可靠性和可用性,需要将数据...
    olostin阅读 4,559评论 2 26
  • 对于容许数据副本不一致的协议, 我们很难用一个单一的维度来定义或者归类这些协议,对于这些协议来说,更关键的问题在于...
    三川_8f54阅读 2,198评论 1 10
  • 叶惠哄孩子睡着了,拿起手机看了看时间,已经快十一点了。 她起身,去了客厅,只见客厅的电视开着,浩宇半躺在沙发里,头...
    艾羽勤阅读 461评论 6 2
  • 170411@D97.感恩冥想 佩诗 。深深的感恩慈悲伟大的佛陀,感谢感谢感谢! 。感恩格西老师用现代化的语言教授...
    佩诗阅读 261评论 0 0