分布式系統(tǒng) - BASE理論

ACID

ACID,指數(shù)據(jù)庫事務正確執(zhí)行的四個基本要素的縮寫赡突。包含:原子性(Atomicity)对扶、一致性(Consistency)、隔離性(Isolation)惭缰、持久性(Durability)浪南。一個支持事務(Transaction)的數(shù)據(jù)庫,必須要具有這四種特性从媚,否則在事務過程(Transaction processing)當中無法保證數(shù)據(jù)的正確性逞泄,交易過程極可能達不到交易方的要求患整。

原子性(Atomicity)

原子性是指事務是一個不可分割的工作單位拜效,事務中的操作要么都發(fā)生,要么都不發(fā)生各谚。

一致性(Consistency)
事務前后數(shù)據(jù)的完整性必須保持一致紧憾。

隔離性(Isolation)
事務的隔離性是多個用戶并發(fā)訪問數(shù)據(jù)庫時,數(shù)據(jù)庫為每一個用戶開啟的事務昌渤,不能被其他事務的操作數(shù)據(jù)所干擾赴穗,多個并發(fā)事務之間要相互隔離。

持久性(Durability)
持久性是指一個事務一旦被提交膀息,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就是永久性的般眉,接下來即使數(shù)據(jù)庫發(fā)生故障也不應該對其有任何影響。

具有ACID的特性的數(shù)據(jù)庫支持強一致性潜支,強一致性代表數(shù)據(jù)庫本身不會出現(xiàn)不一致甸赃,每個事務是原子的,或者成功或者失敗冗酿,事物間是隔離的埠对,互相完全不影響络断,而且最終狀態(tài)是持久落盤的,因此项玛,數(shù)據(jù)庫會從一個明確的狀態(tài)到另外一個明確的狀態(tài)貌笨,中間的臨時狀態(tài)是不會出現(xiàn)的,如果出現(xiàn)也會及時的自動的修復襟沮,因此是強一致的锥惋。

BASE理論

BASE理論解決CAP理論提出了分布式系統(tǒng)的一致性和可用性不能兼得的問題。

BASE在英文中有“堿”的意思臣嚣,對應本節(jié)開頭的ACID在英文中“酸”的意思净刮,基于這兩個名詞提出了酸堿平衡的結論,簡單來說是在不同的場景下硅则,可以分別利用ACID和BASE來解決分布式服務化系統(tǒng)的一致性問題淹父。

BASE模型與ACID模型截然不同,滿足CAP理論怎虫,通過犧牲強一致性暑认,獲得可用性,一般應用在服務化系統(tǒng)的應用層或者大數(shù)據(jù)處理系統(tǒng)大审,通過達到最終一致性來盡量滿足業(yè)務的絕大部分需求蘸际。

BASE模型包含個三個元素:

BA:Basically Available,基本可用

系統(tǒng)出現(xiàn)了不可預知的故障徒扶,但還是能用粮彤,相比較正常的系統(tǒng)而言會有響應時間上的損失和功能上的損失。

S:Soft State姜骡,軟狀態(tài)导坟,狀態(tài)可以有一段時間不同步

什么是軟狀態(tài)呢?相對于原子性而言圈澈,要求多個節(jié)點的數(shù)據(jù)副本都是一致的惫周,這是一種“硬狀態(tài)”。

軟狀態(tài)指的是:允許系統(tǒng)中的數(shù)據(jù)存在中間狀態(tài)康栈,并認為該狀態(tài)不影響系統(tǒng)的整體可用性递递,即允許系統(tǒng)在多個不同節(jié)點的數(shù)據(jù)副本存在數(shù)據(jù)延時。

E:Eventually Consistent啥么,最終一致登舞,最終數(shù)據(jù)是一致的就可以了,而不是時時保持強一致悬荣。

上面說軟狀態(tài)菠秒,然后不可能一直是軟狀態(tài),必須有個時間期限隅熙。在期限過后稽煤,應當保證所有副本保持數(shù)據(jù)一致性核芽,從而達到數(shù)據(jù)的最終一致性。這個時間期限取決于網(wǎng)絡延時酵熙、系統(tǒng)負載轧简、數(shù)據(jù)復制方案設計等等因素。

而在實際工程實踐中匾二,最終一致性分為5種:

因果一致性(Causal consistency)

因果一致性指的是:如果節(jié)點A在更新完某個數(shù)據(jù)后通知了節(jié)點B哮独,那么節(jié)點B之后對該數(shù)據(jù)的訪問和修改都是基于A更新后的值。于此同時察藐,和節(jié)點A無因果關系的節(jié)點C的數(shù)據(jù)訪問則沒有這樣的限制皮璧。

讀己之所寫一致性(Read-your-writes consistency)

讀己之所寫指的是:節(jié)點A更新一個數(shù)據(jù)后,它自身總是能訪問到自身更新過的最新值分飞,而不會看到舊值悴务。其實也算一種因果一致性。

會話一致性(Session consistency)

會話一致性將對系統(tǒng)數(shù)據(jù)的訪問過程框定在了一個會話當中:系統(tǒng)能保證在同一個有效的會話中實現(xiàn) “讀己之所寫” 的一致性譬猫,也就是說讯檐,執(zhí)行更新操作之后,客戶端能夠在同一個會話中始終讀取到該數(shù)據(jù)項的最新值染服。

單調(diào)讀一致性(Monotonic read consistency)

單調(diào)讀一致性指的是:如果一個節(jié)點從系統(tǒng)中讀取出一個數(shù)據(jù)項的某個值后别洪,那么系統(tǒng)對于該節(jié)點后續(xù)的任何數(shù)據(jù)訪問都不應該返回更舊的值。

單調(diào)寫一致性(Monotonic write consistency)

單調(diào)寫一致性指的是:一個系統(tǒng)要能夠保證來自同一個節(jié)點的寫操作被順序的執(zhí)行柳刮。

在實際的實踐中挖垛,這5種系統(tǒng)往往會結合使用,以構建一個具有最終一致性的分布式系統(tǒng)秉颗。

BASE模型的軟狀態(tài)是實現(xiàn)BASE理論的方法痢毒,基本可用和最終一致是目標。按照BASE模型實現(xiàn)的系統(tǒng)站宗,由于不保證強一致性闸准,系統(tǒng)在處理請求的過程中益愈,可以存在短暫的不一致梢灭,在短暫的不一致窗口請求處理處在臨時狀態(tài)中,系統(tǒng)在做每步操作的時候蒸其,通過記錄每一個臨時狀態(tài)敏释,在系統(tǒng)出現(xiàn)故障的時候,可以從這些中間狀態(tài)繼續(xù)未完成的請求處理或者退回到原始狀態(tài)摸袁,最后達到一致的狀態(tài)钥顽。

簡單地來說BASE理論的思想是:系統(tǒng)可能處于不一致的狀態(tài),但最終會變得一致靠汁。

參考

[1] https://juejin.im/post/5b2663fcf265da59a401e6f8
[2] https://itknowledgeexchange.techtarget.com/enterprise-IT-tech-trends/eventual-consistency-gives-scalability-and-availability/

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蜂大,一起剝皮案震驚了整個濱河市闽铐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奶浦,老刑警劉巖兄墅,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異澳叉,居然都是意外死亡隙咸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門成洗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來五督,“玉大人,你說我怎么就攤上這事瓶殃〕浒” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵遥椿,是天一觀的道長误证。 經(jīng)常有香客問我,道長修壕,這世上最難降的妖魔是什么愈捅? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮慈鸠,結果婚禮上蓝谨,老公的妹妹穿的比我還像新娘。我一直安慰自己青团,他們只是感情好譬巫,可當我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著督笆,像睡著了一般芦昔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上娃肿,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天咕缎,我揣著相機與錄音,去河邊找鬼料扰。 笑死凭豪,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的晒杈。 我是一名探鬼主播嫂伞,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了帖努?” 一聲冷哼從身側(cè)響起撰豺,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拼余,沒想到半個月后郑趁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡姿搜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年寡润,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舅柜。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡梭纹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出致份,到底是詐尸還是另有隱情变抽,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布氮块,位于F島的核電站绍载,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏滔蝉。R本人自食惡果不足惜击儡,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蝠引。 院中可真熱鬧阳谍,春花似錦、人聲如沸螃概。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吊洼。三九已至训貌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冒窍,已是汗流浹背递沪。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留超燃,地道東北人区拳。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓拘领,卻偏偏與公主長得像意乓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,440評論 2 359