7.1-NoSQL數(shù)據(jù)庫(kù)概述-2_第1頁(yè)
7.1-NoSQL數(shù)據(jù)庫(kù)概述-2_第2頁(yè)
7.1-NoSQL數(shù)據(jù)庫(kù)概述-2_第3頁(yè)
7.1-NoSQL數(shù)據(jù)庫(kù)概述-2_第4頁(yè)
7.1-NoSQL數(shù)據(jù)庫(kù)概述-2_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、7.1 NoSQL數(shù)據(jù)庫(kù)概述CAP理論BASE最終一致性的相關(guān)理論NoSQL的基礎(chǔ)【本節(jié)學(xué)習(xí)目標(biāo)】一、CAP理論分布式事務(wù)分布式數(shù)據(jù)庫(kù)的不一致-原因分布式環(huán)境的3個(gè)核心需求CAP理論的核心1. 分布式事務(wù)分布式數(shù)據(jù)庫(kù)系統(tǒng)中的事務(wù)是一個(gè)分布式操作序列,被操作的數(shù)據(jù)分布在不同的結(jié)點(diǎn)上。分布式事務(wù)ACID特征,原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation,又稱獨(dú)立性)、持久性(Durability)。網(wǎng)絡(luò)、服務(wù)器、軟件故障-不一致?2、分布式數(shù)據(jù)庫(kù)的不一致-原因在分布式DBMS環(huán)境中,事務(wù)在下列情況會(huì)導(dǎo)致不一致性: 1) 數(shù)據(jù)項(xiàng)的多個(gè)副本-如何保證多個(gè)副

2、本的數(shù)據(jù)一致性?2) 單點(diǎn)網(wǎng)絡(luò)故障-如何通知所有的節(jié)點(diǎn)?事務(wù)是否繼續(xù)? 3) 通信網(wǎng)絡(luò)的故障-數(shù)據(jù)通訊?4)分布式提交等- 兩階段 、 三階段提交過(guò)程中的問(wèn)題? 2、分布式環(huán)境的3個(gè)核心需求在分布式的環(huán)境下設(shè)計(jì)和部署系統(tǒng)時(shí),有3個(gè)核心的需求:CAP對(duì)應(yīng)一致性(Consistency),可用性(Availability)和分區(qū)容忍性(Partition Tolerance)ConsistencyAvailabilityPartition Tolerance4 CAP理論的核心:一個(gè)分布式系統(tǒng)不可能同時(shí)很好的滿足一致性、可用性和分區(qū)容錯(cuò)性這三個(gè)需求,最多只能同時(shí)較好的滿足兩個(gè)。CA - 單點(diǎn)集群,

3、滿足一致性,可用性的系統(tǒng),CP - 滿足一致性,分區(qū)容忍性的系統(tǒng),AP - 滿足可用性,分區(qū)容忍性的系統(tǒng),. 一個(gè)例子CAP的基本思想網(wǎng)絡(luò)兩個(gè)節(jié)點(diǎn)共享數(shù)據(jù)V,初始值為V0算法A在節(jié)點(diǎn)1,算法B在節(jié)點(diǎn)2,要求算法A 寫(xiě)入V新值V1, 算法B 讀取 V1。正常情況有3個(gè)步驟來(lái)完成:1) 算法A 寫(xiě)入新V1。2) 節(jié)點(diǎn)1 發(fā)送信息V1給節(jié)點(diǎn)2。3) 算法 B 讀取的V1并對(duì)其進(jìn)行操作。網(wǎng)絡(luò)斷開(kāi)時(shí),第3步的V1?。例子分析-節(jié)點(diǎn)1和節(jié)點(diǎn)2數(shù)據(jù)不一致的原因:1. 網(wǎng)絡(luò)斷開(kāi),節(jié)點(diǎn)1和節(jié)點(diǎn)2 就會(huì)包含不一致的 V 值。2 網(wǎng)絡(luò)協(xié)議是異步消息-延遲, 3 網(wǎng)絡(luò)協(xié)議是同步消息, 導(dǎo)致同樣的等待問(wèn)題CAP思想,讓

4、 A 和 B 是高可用的(最小的延遲提供服務(wù))并且讓所有的 節(jié)點(diǎn)冗余網(wǎng)絡(luò)的分區(qū)(丟失信息,無(wú)法傳遞信息,硬件無(wú)法提供服務(wù),處理失?。?,那么就得面臨這樣的情況:V的值就會(huì)不一致。例子分析-節(jié)點(diǎn)1和節(jié)點(diǎn)2數(shù)據(jù)不一致的原因:1. 網(wǎng)絡(luò)斷開(kāi),節(jié)點(diǎn)1和節(jié)點(diǎn)2 就會(huì)包含不一致的 V 值。2 網(wǎng)絡(luò)協(xié)議是異步消息-延遲, 3 網(wǎng)絡(luò)協(xié)議是同步消息, 導(dǎo)致同樣的等待問(wèn)題CAP思想,讓 A 和 B 是高可用的(最小的延遲提供服務(wù))并且讓所有的 節(jié)點(diǎn)冗余網(wǎng)絡(luò)的分區(qū)(丟失信息,無(wú)法傳遞信息,硬件無(wú)法提供服務(wù),處理失?。敲淳偷妹媾R這樣的情況:V的值就會(huì)不一致。目的:CAP是為了探索不同應(yīng)用的一致性C與可用性A之間的平

5、衡,在網(wǎng)絡(luò)或其他原因,通過(guò)犧牲一定的一致性C來(lái)獲得更好的性能與擴(kuò)展性在有分隔發(fā)生,選擇可用性A,集中關(guān)注分隔的恢復(fù),需要分隔前、中、后期的處理策略, 及合適的補(bǔ)償處理機(jī)制。選擇什么樣的方式: 放棄?放棄?放棄?BASE二. BASEBasically Available -基本可用;系統(tǒng)能夠基本運(yùn)行,一直提供服務(wù)。Soft-state -軟狀態(tài)/柔性事務(wù)。Soft state 可以理解為無(wú)連接的, 而 Hard state 是面向連接的;系統(tǒng)不要求一直保持強(qiáng)一致?tīng)顟B(tài)。 Eventual Consistency -最終一致性 系統(tǒng)在某個(gè)時(shí)刻達(dá)到最終一致性。BASE定義為CAP中AP的衍生,在分布

6、式環(huán)境下, BASE是數(shù)據(jù)的屬性,BASE強(qiáng)調(diào)基本的可用性,按照功能劃分?jǐn)?shù)據(jù)庫(kù). 1. BASE特點(diǎn)ACID是事物的特征, A(原子性)C(一致性)I(隔離性)D(持久性),ACID的特點(diǎn)是強(qiáng)一致性、隔離性、采用悲觀保守方法、難以變化;BASE的特點(diǎn)是弱一致性、可用性優(yōu)先、采用樂(lè)觀方法、適應(yīng)變化并且簡(jiǎn)單快捷。對(duì)數(shù)據(jù)不斷增長(zhǎng)的系統(tǒng), 大數(shù)據(jù)環(huán)境下系統(tǒng)的可用性及分隔容忍性的要求要高于強(qiáng)一致性,很難滿足事務(wù)要求的ACID特性。2. 最終一致性一致性模型 強(qiáng)一致性: 要求無(wú)論更新操作實(shí)在哪一個(gè)副本執(zhí)行,之后所有的讀操作都要能獲得最新的數(shù)據(jù)。弱一致性:用戶讀到某一操作對(duì)系統(tǒng)特定數(shù)據(jù)的更新需要一段時(shí)間,稱

7、這段時(shí)間為“不一致性窗口”。最終一致性: 弱一致性的一種特例,保證用戶最終能夠讀取到某操作對(duì)系統(tǒng)特定數(shù)據(jù)的更新。3. 最終一致性兩個(gè)角度一致性可以從客戶端和服務(wù)器端兩個(gè)角度來(lái)看 客戶端關(guān)注的是多并發(fā)訪問(wèn)的更新過(guò)的數(shù)據(jù)如何獲取的問(wèn)題,對(duì)多進(jìn)程并發(fā)進(jìn)行訪問(wèn)時(shí), 更新的數(shù)據(jù)在不同進(jìn)程如何獲得不同策略, 決定了不同的一致性。 服務(wù)器關(guān)注的是更新如何復(fù)制分布到整個(gè)系統(tǒng), 以保證最終的一致性。 一致性因?yàn)橛胁l(fā)讀寫(xiě)才出現(xiàn)問(wèn)題, 一定要結(jié)合并發(fā)讀寫(xiě)的場(chǎng)地應(yīng)用要求。 如何要求一段時(shí)間后能夠訪問(wèn)更新后的數(shù)據(jù), 即為最終一致性。4. 最終一致性模型1)因果一致性: 無(wú)因果關(guān)系的數(shù)據(jù)的讀寫(xiě)不保證一致性。2)讀已之所

8、寫(xiě)一致性: 用戶自己總能夠讀到更新后的數(shù)據(jù)。 3)會(huì)話一致性: 把讀取存儲(chǔ)系統(tǒng)的進(jìn)程限制在一個(gè)會(huì)話范圍內(nèi)。 4)單調(diào)讀一致性:后續(xù)的操作都不會(huì)返回到給數(shù)據(jù)之前的值。5)單調(diào)寫(xiě)一致性: 來(lái)自同一個(gè)進(jìn)程的更新操作按照時(shí)間順序執(zhí)行, 也叫時(shí)間軸一致性。5. 最終一致性-一致性與可用性的決擇很多web實(shí)時(shí)系統(tǒng)對(duì)讀一致性的要求很低, 有些場(chǎng)合對(duì)寫(xiě)一致性要求并不高。允許實(shí)現(xiàn)最終一致性。很多web應(yīng)用來(lái)說(shuō),并不要求這么高的實(shí)時(shí)性, SNS類型的網(wǎng)站,從需求以及產(chǎn)品設(shè)計(jì)角 度,就避免了復(fù)雜多表的關(guān)聯(lián)查詢。往往更多的只是單表的主鍵查詢,以及單表的簡(jiǎn)單條件分頁(yè)查詢,SQL的功能被極大的弱化了。海量大數(shù)據(jù)的存儲(chǔ)和管理

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論