Quiescent consistency茎活,Sequential consistency和Linearizability

以下使用QC SCL 代指三者。

動機

多線程執(zhí)行琢唾,如何描述線程之間的相互關聯(lián)的方法和強度载荔。

  1. QC適合描述計數器,只要保證計數不重不漏就可以了采桃。
  2. SC是現代架構讀寫內存的一種模式(使用fence 或者 memory barrier)懒熙。

In the end, the architectures do implement sequential
consistency, but only on demand. We discuss further issues related to sequential
consistency and the Java programming language in detail in Section 3.8.

  1. L則是最強的要求,也是最常見的要求普办,比如queue stack 等數據結構的操作工扎。

定義

  1. QC要求當出現時間點沒有任何程序執(zhí)行的時候,那么該時間點之前和時間點之后的程序執(zhí)行的順序不可以改變衔蹲。

  2. SC則要求肢娘,每一個線程函數調用都是按照程序順序執(zhí)行的,但是程序之間的順序沒有關系舆驶。 因為兩個線程的函數調用的先后關系沒有要求橱健,所以,下面兩種情況對于SC是等價的

// A:
P1 -- q.enq(x) ----------------------------- 
P2 ---------------------------- q.deq():x --

// B:
P1 ----------------------q.enq(x) ----------
P2 ---q.deq():x ----------------------------
  1. LSC的要求沙廉,如果兩個函數調用沒有重疊拘荡,那么函數調用順序不可改變。所以對于上面舉得例子撬陵,在L看來就是不同的俱病,而且例子B沒有就不滿足L,因為q看到自己首先dequeu出來了x 然后才enqueue了一個x袱结。還有一個很容易理解的說法亮隙,L希望程序的執(zhí)行是瞬間發(fā)生,所以重疊的兩個函數的順序沒有要求垢夹,但是不重疊的函數的順序關系必須保持溢吻。

A sequential history H is legal if each object subhistory is legal for that object.

為什么要強調函數調用的移動,因為給定一個歷史(History),進行函數調用的移動總是為了將該歷史變化為一個合法歷史促王,如果先后順序的約束強犀盟,那么意味著不能更加難以轉換為合法歷史。

關系

  1. Linearizability 是 sequential consistency 的子集蝇狼,因為 linearizability 是在 sequential consistency 的基礎上添加了一個保持沒有 overlapping 的順序的要求阅畴。

  2. quiescent consistency 和 sequential consistency 沒有包含關系,其實容易理解迅耘,

    1. 這里舉出一個是 sequential consistency但是不是 quiescent concurrency 的例子贱枣。
    2. 這里是一個對稱的例子
    3. 兩者都是 : 對于一個原子寄存器讀寫。
    4. 兩者都不是的例子 : 一個線程enqueue一個1,另個一線程dequeu 一個 2 出來颤专。
  3. 僅僅滿足SC但是不滿足L纽哥,

Compositional

何為組合: A correctness property is compositional if, whenever each object in the system satisfies , the system as a whole satisfies .

  • quiescent consistency is compositional

Can we, in fact, compose a collection of independently implemented quiescently consistent objects to construct a quiescently consistent system? The answer is, yes: quiescent consistency is compositional, so quiescently consistent objects can be composed to construct more complex quiescently consistent objects

  • Figure 3.8 說明 sequential consistency 不是 compositional 的。
  • L也是可組合的栖秕,證明方法是遞歸的方法(假設對于任意小于k個函數調用的歷史是組合的)

Limit Concurrency

在當前上下文中間春塌,not limit concurrency 其實只是說當前歷史是符合某種一致性,比如順序一致性簇捍,并且含有pending的inv只壳,那么當其獲得 response 的時候,可以保證歷史還是滿足該一致性暑塑。

Linearizability’s nonblocking property states that any pending invocation has a correct response, but does not talk about how to compute such a response.

三者都不會limit concurrency

  • How much does quiescent consistency limit concurrency? Specifically, under what circumstances does quiescent consistency require one method call to block waiting for another to complete? Surprisingly, the answer is (essentially), never.
  • How much does linearizability limit concurrency? Linearizability, like sequential consistency, is nonblocking. Moreover, like quiescent consistency, but unlike sequential consistency, linearizability is compositional; the result of composing linearizable objects is linearizable.
  • Sequential consistency, like quiescent consistency, is nonblocking: any pending call to a total method can always be completed.

雖然三者都是不會limit concurrency 的吼句,但是沒有保證獲得返回需要的步數,所以這三個一致性描述和wait free之類blocking描述其是對于一個函數或者對象兩個維度的描述梯投。

For now, it suffices to recall the two key properties of their design: safety, defined by consistency conditions, and liveness, defined by progress conditions

雜談

  1. 證明一個函數是可線性化的一般方法是什么 ?

The usual way to show that a concurrent object implementation is linearizable is
to identify for each method a linearization point where the method takes effect.
For lock-based implementations, each method’s critical section can serve as its
linearization point. For implementations that do not use locking, the lineariza?tion point is typically a single step where the effects of the method call become
visible to other method calls.

  1. 對于可線性化的形式化證明體系命辖,其基本的策略是什么 ?

TODO

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末况毅,一起剝皮案震驚了整個濱河市分蓖,隨后出現的幾起案子,更是在濱河造成了極大的恐慌尔许,老刑警劉巖么鹤,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異味廊,居然都是意外死亡蒸甜,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門余佛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柠新,“玉大人,你說我怎么就攤上這事辉巡『拊鳎” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長憔恳。 經常有香客問我瓤荔,道長,這世上最難降的妖魔是什么钥组? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任输硝,我火速辦了婚禮,結果婚禮上程梦,老公的妹妹穿的比我還像新娘点把。我一直安慰自己,他們只是感情好作烟,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布愉粤。 她就那樣靜靜地躺著,像睡著了一般拿撩。 火紅的嫁衣襯著肌膚如雪衣厘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天压恒,我揣著相機與錄音影暴,去河邊找鬼。 笑死探赫,一個胖子當著我的面吹牛型宙,可吹牛的內容都是我干的。 我是一名探鬼主播伦吠,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼妆兑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了毛仪?” 一聲冷哼從身側響起搁嗓,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎箱靴,沒想到半個月后腺逛,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡衡怀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年棍矛,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抛杨。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡够委,死狀恐怖,靈堂內的尸體忽然破棺而出怖现,到底是詐尸還是另有隱情茁帽,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站脐雪,受9級特大地震影響厌小,放射性物質發(fā)生泄漏。R本人自食惡果不足惜战秋,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一璧亚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧脂信,春花似錦癣蟋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至埋泵,卻和暖如春幔欧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背丽声。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工礁蔗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人雁社。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓浴井,卻偏偏與公主長得像,于是被迫代替她去往敵國和親霉撵。 傳聞我的和親對象是個殘疾皇子磺浙,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355