999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Cap理論的系統設計

2018-01-08 02:34:48于海水
中國科技縱橫 2018年23期
關鍵詞:模型

于海水

摘 要:本文,首先分析Cap理論概述,其次闡明Cap理論的內涵與需求,再次探討基于Cap理論的系統設計定理與系統設計模型,旨在進一步優化系統設計水平,滿足聯網的計算機信息傳遞需求。

關鍵詞:Cap理論;系統設計;模型

中圖分類號:TP393.08 文獻標識碼:A 文章編號:1671-2064(2018)23-0027-02

Cap原則又稱Cap定理,是指在同一個分布式系統中,一致性、可用性、分區容錯性三者不可兼得。如今,隨著互聯網公司的全球化發展,Google、Amzon等開始嘗試建立全球數據中心,部署服務。而為滿足可用性,Dynamo、PNUTS等系統都采用了復制技術,這一技術的應用引發了數據一致性問題,且違背了Cap理論,現應基于Cap理論進行系統設計,有效解決全球化數據中心服務問題。

1 Cap理論概述

1.1 內涵

Cap理論內涵是在網絡數據共享系統環境下其數據一致性、可用性、分區容忍性三要素不可兼得,只能同時滿足三要素中其中兩個。在Cap理論興起的十幾年里,很多研究者開始嘗試以Cap理論為基礎探究分布式系統的設計問題,甚至NoSQL運動在研究過程中也將Cap理論作為基礎,用于探究對抗傳統關系型數據庫的設計問題。

Cap理論主張的觀點非常明確,詳細界定了同一個網絡數據共享系統不可兼得一致性、可用性、分區容錯性,即最多能夠滿足下述條件中兩個。

(1)數據一致性(C),可做到提供一份最新的數據副本,允許所有節點訪問這一數據副本,使用數據副本;(2)可用性(A),能夠做到及時更新網絡數據共享系統中數據,且當某一部分節點發生故障問題以后,系統集群仍可正常響應客戶端讀寫要求;(3)分區容錯性(P),允許網絡分區。

Cap理論的出現給設計師提供了很好的設計思路,很多設計師開始以Cap理論為依據,參照取舍方案,設計各種各樣的新系統。

1.2 需求

在分布式環境下,系統設計中的一致性、可用性、分區容錯性三要素又可稱為Cap需求。其中,Cap的一致性需求,是指當分布式系統接收到某一數據操作指令時,其系統中多個副本數據會保持一致,進而成功完成多個副本中數據的增、減、刪操作指令。當某一個副本的操作顯示失敗,那么將回到一致性操作前狀態,重新展開多個副本數據的增、減、改操作。在分布系統中,當多個副本數據達到一致性以后,客戶在訪問副本數據過程中將從中獲取到最新的數據,不會呈現出不同客戶端讀取到不同數據的情況。例如,假設分布式環境下有N1、N2兩個節點,數據V是N1和N2的共享數據,其初始值是V0。其中,N1節點所采用的數據算法是A,N2節點所采用的數據算法是B,算法A和算法B非常相似。前者,可將新值寫入共享數據V,后者可讀取V的值。

在存儲系統保持一致性的基礎上,當新的V值通過算法A寫入到共享數據V以后,將變成數據V1,數據V1將通過節點N1被發送至N2,N2將及時更新新的V值。如此,B讀取到的N1節點、N2節點V值將是一致的,都是V1。在網絡斷開環境下,N1節點通過算法A計算出的新的V值,即V1無法及時發送到N2節點,N2節點的V值仍然是初始值V0,那么B讀取的N1、N2節點V值將出現不一致的情況。Cap的可用性需求,是指在分布式環境下,允許客戶端訪問數據。但是,系統上所有節點響應的數據并不代表是一致的。例如,系統上有N1和N2兩個節點,客戶端要通過系統節點獲取文章評論,那么假設N1節點上數據是最新的,當客戶端通過N2獲取數據時,其返回的數據將缺少最新的一條。在這樣一種情況下,系統仍然被認為是可用的,只有當數據響應時間超過所設定好的響應時間服務,才可認定系統不可用,無法及時反饋所要瀏覽的數據。Cap的分區容錯性需求,是指在分布系統中將統一數據副本存儲于不同地點,當系統中某些子集合節點出現故障問題時,分布系統容錯性將支撐整個系統仍然進行正確響應,由此可提高系統的性能。但是,在對系統進行分區時,要切斷各個分區之間的網線,保證每個網絡分區都是孤立的。

由上述論述內容可知,核心系統有一致性、可用性、分區容錯性三個Cap需求,在基于Cap理論進行系統設計時,要把握好Cap需求。

2 基于Cap理論的系統設計定理

2.1 異步網絡模型

在系統活動增加和吞吐量逐漸上升背景下,Cap定理將顯得尤為重要,基于Cap理論的系統設計異步網絡模型,無統一時鐘,不能同時滿足消息可丟失或不丟失的對等運算一致性、可用性、分區容錯性Cap需求[1]。同時,在異步網絡模型時,當遇到消息被延遲的問題,任何一個算法都無法準確判斷出消息延遲原因。因為,丟失可造成消息延遲,傳輸通道受阻也可造成消息延遲。

2.2 同步網絡模型

在同步網絡模型中,所有節點上時鐘功能主要是計時器作用,每一個節點上時鐘時間顯示值可能不同,但可用于確定調度某事件后經過多長時間間隔進行另一項操作,在給定時間內接收到消息。此外,同步網絡模型與異步網絡模型不同,只是不能同時滿足消息可丟失的對等運算可用性、一致性、分區容錯性Cap需求。在Cap理論指導下Google開始嘗試使用PC機搭建計算和存儲平臺,PC機的使用讓分布式系統同時滿足了可用性、分區容錯性兩個Cap需求。另外,在系統未出現故障情況下,分布式系統還能夠提供一致性讀寫服務。

總之,基于Cap理論的系統設計要真正了解系統需求,在把握好系統需求前提下,合適使用Cap理論,處理好3個核心系統需求強調點。

3 基于Cap理論的系統設計模型

基于Cap理論的系統設計模型有ACID和BASE兩種。在ACID模型設計中,重點是依據Cap理論完成現代關系型數據庫的設計,現代關系型數據庫事務正確執行依賴于原子性、一致性、隔離性、持久性四個基本元素。其中,原子性是指在包含多個操作的某一事務執行時,一旦開始執行這一事務,必須保證完成所有操作,如若某一操作沒有完成,要回到事務開始狀態,重新完成操作的正確執行。以A給B轉賬100元為案例,當開啟事務之后,要么事務中的操作都發生,要么事務中的操作都不發生。如下所示:

Begin transaction

Update account set money=money-100where name=‘A;

Update account set money=money+100where name=‘B;

If Error then

Rollback

Else

Commit

在上述案例中,扣款和加款兩條語句,要么都執行,要么都不執行。

一致性,是指數據庫事物執行時系統開始狀態、結束狀態、給定并發數等等,都是不變的、一致的[2]。以銀行轉賬事務為例,在銀行轉賬事務執行過程中,無論是事務執行成功,還是事務執行失敗,事務結束以后ACCOUNT表中aaa和bbb的存款總額應是2000元,業務邏輯要保持一致性。而為了更好的實現一致性,在ACID模型具體設計過程中,要建立起一個數據庫機制,用于約束事務執行中的數據庫層面,保證其符合Check約束、唯一約束等。還有,ACID模型開發人員應處理好業務一致性問題。隔離性,是指關系型數據庫中兩個相同的事務會被隔離開來,事務之間不會相互影響,由此在隔離狀態下提高數據庫事務正確執行效率。持久性,是指當事務執行操作完成以后,事務執行結果會保存到數據庫。基于上述四個基本元素基礎上,ACID模型設計實現方式要依附于WAL和shadow paging兩種形式,這兩種技術相比較,后者更加簡單,且能夠在沒有redo和undo的支持下提高寫日志記錄的開銷恢復速度。shadow paging與WAL技術相比,缺點也比較明顯,要以“塊”為單位完成事務提交輸出操作,無法滿足多個事務并發執行需求。WAL技術,是在修改已經記錄日志后對數據文件進行修改,即當日志記錄沖刷到永久存儲器后可通過日志恢復數據庫方式,完成事務提交操作。整個過程中,如若發現尚未附加到數據頁記錄的情況,要以向前滾動恢復(REDO)方式在日志記錄中重做,保證事務執行效果。

基于Cap理論的BASE模型設計,是反ACID模型,它在模型具體設計過程中不再強調一直性,而是重點考慮數據庫可用性。BASE模型,基本可以支持分區失敗,狀態可以在一段時間不同步,只要保證數據最終一致即可。所以說,BASE模型是反ACID模型,做了可用性與一致性之間的一個取舍。BASE模型的設計要依附于按功能劃分數據庫與sharding碎片兩種實現方式,其中,在利用sharding基本原理進行BASE模型設計時,要先根據數據庫實際情況,把數據庫分為多個部分。待數據庫切分完畢之后,將切分好的各個部分放置于不同數據庫上,有效提高單一數據庫整體性能[3]。但是,在海量數據的數據庫處理時,要根據這一種類型數據庫表多、數據多的特點,以垂直切分法為主將一個數據庫切分成多個部分。然后,再將各個部分方在sever上,由此達到最佳的BASE模型設計狀態。

總之,BASE模型設計中心思想是強調可用性,在滿足基本的可用性基礎上,可犧牲容忍性和一致性。現階段,BASE模型設計性能方面的潛能還是有待挖掘的,在基于Cap理論的BASE模型具體設計中,NOSQL運動豐富了BASE模型設計方案。其一,可在BASE模型設計中參照Amaze Dynamo等人提出的Key-Value存儲思想,靈活選擇Cap三原則,設計多樣化數據庫產品。其二,可根據自己項目需求,通過靈活選擇Cap三原則,設計領域模型+分布式緩存+存儲的BASE模型,這種BASE模型設計形式與前者相比,難度更高。但不管是Key-Value存儲模型設計還是領域模型+分布式緩存+存儲的BASE模型設計,其存儲都可以是同步,也可以是異步。從二者不同點角度來看,第一種模型設計方式更加適用于非Java工作環境下,可用性更高。而第二種模型設計中更加靈活,但它只是一種架構解決方案,不能拿來就用。

4 結語

綜上可知,在系統設計中,復制技術的運用引發了一致性問題。在一致性問題解決過程中使用Cap理論加以指導十分重要,基于Cap理論指導的系統設計要遵從異步網絡模型和同步網絡模型設計定理,并通過優化系統設計模型徹底解決原有系統設計中的一致性問題,創造一個良好的互聯網數據中心運行環境。

參考文獻

[1]黃瑜.大型數據庫的關聯挖掘算法設計[J].現代電子技術,2018,30(20):45-48.

[2]張青,任宏.智能人機交互通信系統設計與實現[J].現代電子技術,2018,22(20):175-178.

[3]侯荷潔.大數據環境下的軍事期刊數據庫建設芻議[J].國防,2018,11(09):68-71.

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 91高清在线视频| 91无码人妻精品一区二区蜜桃| 亚洲精品你懂的| 日韩免费视频播播| 国产人碰人摸人爱免费视频| 91小视频版在线观看www| 欧美中出一区二区| 国产丝袜丝视频在线观看| 国产女人爽到高潮的免费视频| 国产鲁鲁视频在线观看| 一级爆乳无码av| 国产日韩丝袜一二三区| 日韩在线成年视频人网站观看| 欧美精品三级在线| 国产99视频精品免费观看9e| 国产菊爆视频在线观看| 亚洲精品老司机| 亚洲精品久综合蜜| 欧美成人区| 婷婷亚洲天堂| 亚洲va视频| 9999在线视频| 国产成人一二三| 中文字幕不卡免费高清视频| 九九这里只有精品视频| 日韩一区二区三免费高清| 99久久精品美女高潮喷水| 欧美三级日韩三级| 成人小视频网| 免费国产在线精品一区| 国产剧情一区二区| 亚洲国产欧美目韩成人综合| 久久精品aⅴ无码中文字幕 | 日本免费一区视频| 亚洲人成网站观看在线观看| 欧美区一区二区三| 91国内视频在线观看| 亚洲不卡影院| 国产手机在线小视频免费观看| 欧美精品影院| 国模极品一区二区三区| 国产精女同一区二区三区久| 亚洲高清国产拍精品26u| 日韩视频免费| 另类欧美日韩| 国产精品视频观看裸模| 国产一级毛片在线| 国内精品91| 亚洲无线一二三四区男男| 久久久久久久久久国产精品| 亚洲乱亚洲乱妇24p| 日韩欧美成人高清在线观看| 久热re国产手机在线观看| 亚洲成AV人手机在线观看网站| 91福利免费视频| 欧美激情第一欧美在线| 午夜性爽视频男人的天堂| 欧美丝袜高跟鞋一区二区| 欧美日韩高清在线| 亚洲乱强伦| 日韩精品无码不卡无码| 99国产精品免费观看视频| 青青青国产视频| 4虎影视国产在线观看精品| 成人午夜网址| 91视频精品| 亚洲日韩精品无码专区97| 日韩成人午夜| 午夜人性色福利无码视频在线观看| 综合色在线| 成年女人a毛片免费视频| 欧美成a人片在线观看| 国产精选自拍| 在线观看视频99| 国产人成午夜免费看| 黄色网址免费在线| 久久综合色播五月男人的天堂| 日韩精品一区二区三区免费在线观看| h网站在线播放| 午夜毛片福利| 亚洲91在线精品| 日韩在线观看网站|