• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Cap理論的系統(tǒng)設(shè)計

    2018-01-08 02:34:48于海水
    中國科技縱橫 2018年23期
    關(guān)鍵詞:系統(tǒng)設(shè)計模型

    于海水

    摘 要:本文,首先分析Cap理論概述,其次闡明Cap理論的內(nèi)涵與需求,再次探討基于Cap理論的系統(tǒng)設(shè)計定理與系統(tǒng)設(shè)計模型,旨在進一步優(yōu)化系統(tǒng)設(shè)計水平,滿足聯(lián)網(wǎng)的計算機信息傳遞需求。

    關(guān)鍵詞:Cap理論;系統(tǒng)設(shè)計;模型

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

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

    1 Cap理論概述

    1.1 內(nèi)涵

    Cap理論內(nèi)涵是在網(wǎng)絡(luò)數(shù)據(jù)共享系統(tǒng)環(huán)境下其數(shù)據(jù)一致性、可用性、分區(qū)容忍性三要素不可兼得,只能同時滿足三要素中其中兩個。在Cap理論興起的十幾年里,很多研究者開始嘗試以Cap理論為基礎(chǔ)探究分布式系統(tǒng)的設(shè)計問題,甚至NoSQL運動在研究過程中也將Cap理論作為基礎(chǔ),用于探究對抗傳統(tǒng)關(guān)系型數(shù)據(jù)庫的設(shè)計問題。

    Cap理論主張的觀點非常明確,詳細界定了同一個網(wǎng)絡(luò)數(shù)據(jù)共享系統(tǒng)不可兼得一致性、可用性、分區(qū)容錯性,即最多能夠滿足下述條件中兩個。

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

    Cap理論的出現(xiàn)給設(shè)計師提供了很好的設(shè)計思路,很多設(shè)計師開始以Cap理論為依據(jù),參照取舍方案,設(shè)計各種各樣的新系統(tǒng)。

    1.2 需求

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

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

    由上述論述內(nèi)容可知,核心系統(tǒng)有一致性、可用性、分區(qū)容錯性三個Cap需求,在基于Cap理論進行系統(tǒng)設(shè)計時,要把握好Cap需求。

    2 基于Cap理論的系統(tǒng)設(shè)計定理

    2.1 異步網(wǎng)絡(luò)模型

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

    2.2 同步網(wǎng)絡(luò)模型

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

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

    3 基于Cap理論的系統(tǒng)設(shè)計模型

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

    Begin transaction

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

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

    If Error then

    Rollback

    Else

    Commit

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

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

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

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

    4 結(jié)語

    綜上可知,在系統(tǒng)設(shè)計中,復(fù)制技術(shù)的運用引發(fā)了一致性問題。在一致性問題解決過程中使用Cap理論加以指導(dǎo)十分重要,基于Cap理論指導(dǎo)的系統(tǒng)設(shè)計要遵從異步網(wǎng)絡(luò)模型和同步網(wǎng)絡(luò)模型設(shè)計定理,并通過優(yōu)化系統(tǒng)設(shè)計模型徹底解決原有系統(tǒng)設(shè)計中的一致性問題,創(chuàng)造一個良好的互聯(lián)網(wǎng)數(shù)據(jù)中心運行環(huán)境。

    參考文獻

    [1]黃瑜.大型數(shù)據(jù)庫的關(guān)聯(lián)挖掘算法設(shè)計[J].現(xiàn)代電子技術(shù),2018,30(20):45-48.

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

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

    猜你喜歡
    系統(tǒng)設(shè)計模型
    一半模型
    p150Glued在帕金森病模型中的表達及分布
    重要模型『一線三等角』
    重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
    一種基于SATA硬盤陣列的數(shù)據(jù)存儲與控制系統(tǒng)設(shè)計研究
    3D打印中的模型分割與打包
    工業(yè)熱電偶計量檢定系統(tǒng)設(shè)計
    基于物聯(lián)網(wǎng)的煤礦智能倉儲與物流運輸管理系統(tǒng)設(shè)計與應(yīng)用
    目標(biāo)特性測量雷達平臺建設(shè)構(gòu)想
    科技視界(2016年22期)2016-10-18 14:34:34
    星級酒店建筑電氣及弱電智能系統(tǒng)設(shè)計分析
    抚顺市| 巢湖市| 南皮县| 正阳县| 泗阳县| 都安| 彭水| 柳江县| 红安县| 搜索| 靖江市| 伊宁县| 阿瓦提县| 宁远县| 镇安县| 南康市| 巴塘县| 宁远县| 定边县| 仙游县| 台北县| 金塔县| 长岭县| 涪陵区| 新巴尔虎左旗| 当阳市| 平顶山市| 寿宁县| 蓬莱市| 滨州市| 清流县| 乌拉特前旗| 耒阳市| 涿州市| 财经| 桃园市| 桃园县| 汉川市| 织金县| 永修县| 濮阳县|