国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

如何解決分布式系統(tǒng)的Logical Time問題?(一)

開發(fā) 開發(fā)工具 分布式
在一個分布式系統(tǒng)中存在著各種各樣的并發(fā)事件,例如logical time問題。本文就為大家介紹logical time算法的鼻祖Lamport Clock。

前言

在一個分布式系統(tǒng)中存在著各種各樣的并發(fā)事件,對于某些存在內(nèi)在因果關系的事件需要知道事件的先后順序,并且能夠按照正確的順序處理這些事件,區(qū)分事件的先后順序在單機系統(tǒng)中可以靠本地時鐘來做到,但在分布式系統(tǒng)中如何做到呢,這就是分布式系統(tǒng)中的logical time問題。

本文為大家介紹logical time算法的鼻祖Lamport Clock。

為了形象地描述logical time問題,我們舉個簡單的例子,假設客戶A下單購買了一本書,這時系統(tǒng)向訂單系統(tǒng)提交a請求(客戶買書的訂單),然后購買該書還有個優(yōu)惠活動,能夠獲得一本贈書,這時系統(tǒng)需要向優(yōu)惠活動管理系統(tǒng)發(fā)送b請求(客戶要求贈書x),優(yōu)惠活動管理系統(tǒng)檢查準許客戶的贈書請求,于是將b請求轉(zhuǎn)發(fā)給訂單系統(tǒng),在該例子中顯然訂單系統(tǒng)應該先收到買書的訂單,然后是贈書的訂單,但是由于網(wǎng)絡延時的原因,可能存在贈書請求先于買書請求到達訂單系統(tǒng)的情況,那么這種情況需要如何處理?

我們用簡單的圖來描述上面的過程,圖中P0代表訂單系統(tǒng),P1代表客戶,P2代表優(yōu)惠活動管理系統(tǒng),a請求就是買書請求,b請求就是贈書請求。

描述logical time問題

為了解決該問題比較容易想到的做法就是同步通信,發(fā)送a請求后等待P0處理完成并回復后再開始發(fā)送b請求,該方法簡單易實現(xiàn)但是并不能發(fā)揮分布式系統(tǒng)的并發(fā)性能,效率低下,也不能簡單地用給時間a和b打上本地時間戳的方式來處理,因為分布式系統(tǒng)中本地時鐘是無法做到完全同步的,所以需要一種適用于分布式系統(tǒng)的能將事件的先后順序信息也被稱為“ happened before”信息識別出來的算法,本文主要介紹logical time算法的鼻祖Lamport clock。

Lamport clock算法

Lamport clock算法的思想很簡單,主要有以下兩個規(guī)則:

  • 每個process在成功完成一個事件后都增加自己的時間戳,通常是加1;
  • 如果process Pi通過消息m發(fā)送了事件a,那么該消息m中包含了當前pi的時間戳Ci(a);process Pj收到消息m后,取消息m中帶的時間戳和Pj當前的時間戳Cj中的較大值然后加1;

例如一個較為復雜的例子,已經(jīng)用Lamport clock算法為每個事件加了時間戳,如下圖:

通過該例子可以發(fā)現(xiàn)存在一些并沒有明確的先后關系的并發(fā)事件,比如p1上的時間戳為3的事件和p2上的時間戳為4的事件,這些事件可以是任意先后或者同時發(fā)生,但在Lamport clock算法中這些事件卻有了明確的時間戳,該時間戳的大小并不代表事件的先后順序。

重要屬性

用簡單的公式來描述logical time算法的Clock Condition,C表示時間戳,ei 和 ej表示兩個事件,假設ei先于ej發(fā)生,并用->表示該“happened before”關系,那么存在以下兩個Clock Condition:

1) ei -> ej => C(ei) < C(ej)

表示如果ei先于ej發(fā)生,那么ei的時間戳C(ei)必定小于C(ej)。

2) ei -> ej <=> C(ei) < C(ej)

表示如果ei先于ej發(fā)生,那么ei的時間戳C(ei)必定小于C(ej),如果C(ei)小于C(ej),那么ei必定先于ej發(fā)生。

根據(jù)算法是否滿足以上Clock Condition來區(qū)分其所具備的屬性,如果一個算法滿足Clock Conditon 2,那么該算法具備strongly consistent屬性,本篇文章介紹的Lamport clock算法只滿足Clock Condition 1,所以不具備strongly consistent屬性,但后續(xù)介紹的vector clock算法具備strongly consitent屬性。

strongly consistent屬性的意義在于是否可以通過C時間戳來判斷出事件ei與ej的順序關系,具備該屬性的算法,當時間戳C(ei) > C(ej)時,可以確定ei先于ej發(fā)生,否則可以認為ei與ej是沖突的(這里的沖突表示ei與ej可以是任意的先后關系),所以可以用來檢測事件的沖突。

案例分析

使用Lamport clock對之前的例子做排序,如下圖:

P1發(fā)送a消息和b消息,因為P1的初始時間戳為0,所以按照Lamport clock算法事件a和b的發(fā)送時間戳為1和2。

P0收到P1的消息a,取兩者時間戳的較大值max(0,1)并+1得到時間戳為2。

P2收到b消息后,取兩者時間戳的較大值max(0,2)并+1得到時間戳為3。

P0收到P2轉(zhuǎn)發(fā)的事件b后,取兩者時間戳的較大值max(2,3)并+1得到時間戳為4。

所以在P0端可以得到事件a是先于事件b的。

但在實際的應用中由于存在網(wǎng)絡延時,會出現(xiàn)以下情況:

因為網(wǎng)絡延時導致P0先收到P2轉(zhuǎn)發(fā)的b事件,再收到P1的a事件,然后根據(jù)Lamport clock算法計算出來的時間戳也變成了b事件先于a事件了,這顯然是錯誤的,那么要如何避免出現(xiàn)這個情況,為了關注解決該問題的實際算法,假定系統(tǒng)已經(jīng)滿足以下條件:

  • 消息的接受順序與發(fā)送順序一致;
  • 所有的消息最終都會被收到;

每個process都有自己的請求隊列,并且對其他process不可見,請求隊列中的初始時間戳為0,算法由以下5條規(guī)則組成:

1) 請求資源時,process Pi發(fā)送消息Tm,給其他所有process,并且將消息Tm置于它的請求隊列中

2) prcocess Pj收到Pi的資源請求消息Tm后,將該消息置于自己的請求隊列中并發(fā)送一個帶有時間戳的回復給Pi

3) 釋放資源時,Pi將消息Tm從請求隊列中移除,并發(fā)送資源釋放消息給所有其他process

4) process Pj收到Pi的資源釋放消息后將之前的資源請求消息Tm從請求隊列中移除

5) 當滿足以下2個條件時認為Pi獲取了資源

  • Pi的請求隊列中有請求消息Tm,并且按照順序排列好的,這里以消息的發(fā)送順序為準;
  • Pi收到了任意一個時間戳比Tm要大的消息;

把這個算法帶入到上面的例子中,相當于P1發(fā)起了兩個事件a和b來請求資源,a比b要先發(fā)生,那么也期望a比b要先被P0處理(這里處理可以理解為獲取了P0的資源),那么當出現(xiàn)上述例子中的情況,事件b先被P0收到,按照算法,P0發(fā)送Tm給所有其他process,然后等待回復,當收到P1的回復時a事件也必然被收到了(按照系統(tǒng)假定滿足的條件1)消息的接受順序與發(fā)送順序一致),這時按照規(guī)則5的(i)條件,會根據(jù)事件a和b的發(fā)送端的時間戳比較,重新排序為a事件先于b事件,這樣就解決了因為網(wǎng)絡延時導致的消息亂序問題。

總結

 

Lamport clock雖然作為分布式系統(tǒng)中解決logical time問題的鼻祖,為后續(xù)其他算法提供了思路,但其不具備strongly consistent,無法滿足分布式數(shù)據(jù)庫場景中寫沖突的檢測,所以實際場景中更多是使用后來的vector clock,后面我們將會給大家介紹vector clock。

【本文是51CTO專欄機構作者“大U的技術課堂”的原創(chuàng)文章,轉(zhuǎn)載請通過微信公眾號(ucloud2012)聯(lián)系作者】

 戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2020-03-12 10:25:06

解決分布式系統(tǒng)幽靈復現(xiàn)

2016-12-09 09:21:45

分布式系統(tǒng)大數(shù)據(jù)

2021-07-07 10:28:09

分布式架構系統(tǒng)

2021-01-21 07:34:16

分布式系統(tǒng)場景

2020-02-17 16:05:17

系統(tǒng)演進過程時間問題

2021-12-14 08:19:59

系統(tǒng)分布式網(wǎng)絡

2021-12-15 07:24:56

分布式系統(tǒng)時鐘

2023-05-12 08:23:03

分布式系統(tǒng)網(wǎng)絡

2022-05-05 12:03:08

分布式系統(tǒng)設計

2023-02-11 00:04:17

分布式系統(tǒng)安全

2023-05-29 14:07:00

Zuul網(wǎng)關系統(tǒng)

2022-06-14 10:47:00

分布式事務數(shù)據(jù)

2013-07-17 11:12:00

分布式數(shù)據(jù)庫分布式系統(tǒng)

2022-05-11 13:55:18

高可用性分布式彈性

2024-08-13 17:35:27

2022-08-12 18:40:00

分布式

2017-10-27 08:40:44

分布式存儲剪枝系統(tǒng)

2020-09-21 09:15:12

系統(tǒng)

2023-10-26 18:10:43

分布式并行技術系統(tǒng)

2013-12-05 09:36:37

分布式系統(tǒng)
點贊
收藏

51CTO技術棧公眾號

国产av国片精品| www.99在线| 欧美日韩中出| 欧美在线一区二区| 免费观看成人网| 视频一区视频二区中文| 国产精品成人一区二区| 99热99re6国产在线播放| 午夜久久电影网| 欧美日韩在线视频一区二区三区| 亚洲久久视频| 国产91色在线|免| yy6080久久伦理一区二区| 91久久精品一区二区三区| 国产免费人做人爱午夜视频| 国产精品呻吟| 国产精品爽爽爽爽爽爽在线观看| 四虎永久精品在线| 精品电影一区二区三区| 手机看片福利在线观看| 日韩理论在线观看| 日本黄色三级大片| 久久 天天综合| 成人黄色片视频网站| 欧美日韩破处| 亚洲美女喷白浆| 蜜桃视频在线观看www社区 | 国产在线激情视频| 亚洲成人自拍偷拍| 久久久久国产一区| 99久久免费精品| 99视频精品全部免费看| 久久精品1区| 国产一区再线| 欧美色123| 亚洲free嫩bbb| 91麻豆国产自产在线观看亚洲| 68精品久久久久久欧美| 国产一区二区三区| 久久综合伊人77777蜜臀| 成人精品国产亚洲| 久久精品国亚洲| 久久影院一区二区三区| 欧美精品免费播放| 亚洲欧美日本国产| 98精品国产高清在线xxxx天堂| 欧美性www| 欧美成人精品影院| 国产调教精品| 久久视频在线免费观看| 日韩免费在线电影| 久久久久久网站| 国产一区二区三区四区五区传媒| 国产精品96久久久久久又黄又硬| 欧美三级美国一级| 99r国产精品视频| 国产精品久久久久久模特| 欧美一区二区三区四区五区六区| 日本aⅴ精品一区二区三区 | 我要色综合中文字幕| 国产精品88久久久久久| 亚洲欧洲免费视频| 久久久久免费看黄a片app| 国产传媒久久文化传媒| 国产精品人人妻人人爽人人牛| 调教+趴+乳夹+国产+精品| 日本一区二区三区中文字幕| 九色综合国产一区二区三区| 91极品女神在线| 久久中文在线| 成全电影播放在线观看国语| 91久久嫩草影院一区二区| 18成人在线观看| 91精品啪在线观看国产81旧版| 妞干网在线观看| 国产在线一区二区三区| 欧美精三区欧美精三区| 国产成人av电影在线观看| 大桥未久女教师av一区二区| 你懂的视频在线播放| 中文字幕一区二区三区最新| 日韩欧美国产1| 国产亚洲一区二区三区四区| 欧美三级午夜理伦三级小说| 在线观看视频你懂的| 日本免费高清一区| 久久久免费av| 欧美不卡一区二区三区| 国产精品水嫩水嫩| 免费在线成人| 欧美在线在线| 国产在线观看免费麻豆| 国产aaa一级片| 91免费福利视频| 日韩在线中文字| 欧美一区二区视频在线观看2020 | 7777精品伊人久久久大香线蕉经典版下载 | 蜜臀av国内免费精品久久久夜夜| 欧美精品成人网| 亚洲精品中文字幕在线| 国产欧美精品xxxx另类| 久久资源免费视频| 亚洲一级黄色av| 欧美成人vr18sexvr| 偷拍亚洲欧洲综合| 亚洲人精品午夜| 亚洲国产精品精华液2区45| 久久99热狠狠色一区二区| 91久久电影| 成午夜精品一区二区三区软件| 欧美日韩视频网站| 中文字幕人成乱码在线观看| 黄色片网站在线| 成人免费观看视频大全| 成人短视频在线| 久久bbxx| 欧美一区二区三区| av毛片在线免费看| 涩涩网在线视频| 天堂在线中文网官网| 欧美xxxx网站| 亚洲精品观看| 精品免费视频| 久久要要av| 国内精品福利| 国产精品入口66mio| 日韩国产欧美三级| 日本视频免费一区| 国产成人99久久亚洲综合精品| 成人一二三区视频| 亚洲乱码日产精品bd| 欧美丝袜自拍制服另类| 欧美成人bangbros| 欧美精品18videos性欧| 国产欧美va欧美va香蕉在| 天堂一区二区三区| 欧美极品少妇无套实战| 天天干天天操天天玩| 国产在线激情视频| 四虎影视成人精品国库在线观看| 国产精品黄网站| 欧美日本二区| 加勒比av一区二区| 一区二区三区在线视频播放| 欧美在线短视频| 久久精品国产91精品亚洲| 国产欧美日韩免费| 一区二区三区国产福利| 国产午夜视频| 国产盗摄在线视频网站| 日韩欧美大片| 日韩国产精品久久久久久亚洲| 国产欧美一区二区在线观看| 精品久久久久久亚洲综合网| 日韩美女视频免费在线观看| dy888午夜| 国产对白叫床清晰在线播放| 在线视频亚洲欧美中文| 老鸭窝一区二区久久精品| 亚洲精品videosex极品| 一区二区三区四区在线观看视频| 91在线精品播放| 国产日韩欧美久久| 国产成人精品亚洲日本在线观看| 99香蕉国产精品偷在线观看| 亚洲免费伊人电影| 亚洲精品一区二区久| 成人xxxx视频| 意大利激情丛林无删减版dvd| 91精品xxx在线观看| 久久精品主播| 中文字幕一区二区三区蜜月| 欧美特级限制片免费在线观看| 精品久久久精品| 亚洲综合丝袜美腿| 九九热在线精品视频| 欧美一级二级三级九九九| 日韩中文字幕a| 成人网ww555视频免费看| 欧美日韩国产综合网| 亚洲欧洲日韩女同| 久久久久久久久久久91| 国产一级爱c视频| 超免费在线视频| 亚洲精品1区2区| 精品久久久久久中文字幕一区奶水| 久久久久亚洲精品| 国产麻花豆剧传媒精品mv在线| 日韩免费va| 国产乱码精品一区二区三区五月婷 | 欧美性视频在线| 国产又大又黄又粗又爽| 成人污污www网站免费丝瓜| 国产成人亚洲综合a∨婷婷图片| 亚洲国产精品电影在线观看| 免费看污久久久| 中老年在线免费视频| 成人午夜免费电影| 欧美理论片在线观看| www.三区|