半結(jié)構(gòu)化數(shù)據(jù)存儲系統(tǒng)調(diào)研_第1頁
半結(jié)構(gòu)化數(shù)據(jù)存儲系統(tǒng)調(diào)研_第2頁
半結(jié)構(gòu)化數(shù)據(jù)存儲系統(tǒng)調(diào)研_第3頁
半結(jié)構(gòu)化數(shù)據(jù)存儲系統(tǒng)調(diào)研_第4頁
半結(jié)構(gòu)化數(shù)據(jù)存儲系統(tǒng)調(diào)研_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

半結(jié)構(gòu)化數(shù)據(jù)存儲系統(tǒng)調(diào)研現(xiàn)有的半結(jié)構(gòu)化系統(tǒng)BigtableGoogle的分布式nosql數(shù)據(jù)存儲系統(tǒng)有一個開源的版本HBaseDynamoAmazon的分布式存儲引擎CassandraFacebook的開源分布式存儲系統(tǒng)MongoDBGoogle的基于分布式文件存儲的數(shù)據(jù)庫開源項目CouchDBIBM開發(fā)的面向文檔的數(shù)據(jù)庫(團(tuán)隊已組建新公司CouchIO)RedisVmware的開源key-value數(shù)據(jù)庫Bigtable概述大量應(yīng)用需要類似數(shù)據(jù)庫的訪問查詢一般比較簡單不需要完整的數(shù)據(jù)關(guān)系模型數(shù)據(jù)規(guī)模非常大要保證高效(帶寬&延遲),高可用優(yōu)點(diǎn)與傳統(tǒng)數(shù)據(jù)庫不同,類似Key-Values列簇式存儲(ColumnFamily)可以隨時添加column字段可以保存歷史數(shù)據(jù)缺點(diǎn)不支持類似關(guān)聯(lián)(join)這樣的操作BigTable邏輯模型傳統(tǒng)表格:Row/Column/CellBitTableRow:RowkeyColumn:<ColumnFamily:Qualifier>同一個columnfamily的數(shù)據(jù)類型一致Columnfamily在設(shè)計table時創(chuàng)建,運(yùn)行后很少修改可在運(yùn)行時再columnfamily中添加columnTimestampsCell有多個版本可用針對columnfamily設(shè)定查詢:(row:string,column:string,time:int64)stringBigtable物理模型用戶table按rowkey劃分為多個Tablet在內(nèi)存中開辟緩沖區(qū)memtable來保存數(shù)據(jù)數(shù)據(jù)的持久化存儲使用SSTable,永久保存在GFS上Tablem*TabletTabletn*columnfamilyn*columnfamilySstableSSTable(V1:Rowkey,CF0-C1,CF0-C2,CF0-C3,CF1-C1),(V2),….V1V2V3BigTable的組成Master分配Tablet監(jiān)測TabletServer的狀態(tài),容錯處理保證系統(tǒng)負(fù)載均衡TabletServer服務(wù)讀寫請求,Tablet處理Client直接與TabletServer交互操作TableChubby保證系統(tǒng)可用性保存TableSchemaGFS作為底層存儲Dynamo概述優(yōu)點(diǎn)完全的分布式,去中心化,存儲分層松耦合度高可用性,可擴(kuò)展性缺點(diǎn)最終一致性:寫入的數(shù)據(jù)可能在后繼的讀操作中不能獲取Quorum一致性:讀取代價高(一旦有某個節(jié)點(diǎn)未同步,讀取會失敗)WANconsideration跨IDC造成異地傳輸數(shù)據(jù)加Dynamo架構(gòu)客戶端請求通過pagerendering組件返回內(nèi)容Pagerendering組件根據(jù)請求查詢大量服務(wù)器后臺通過dynamoinstance提供服務(wù)本地持久化存儲可通過不同引擎,如Berkeley

DB,MySQL等Dynamo數(shù)據(jù)劃分使用consistenthashing算法Node對應(yīng)一個hash值范圍,key根據(jù)hash值在hashring中順時針查找引入虛擬節(jié)點(diǎn)概念Dynamo數(shù)據(jù)版本控制使用vectorclocks通過比較vectorclock來進(jìn)行版本合并Dynamo同步與恢復(fù)一個node中的同步由client來解決使用(N,R,W)模型,其中N表示node中機(jī)器的總數(shù),R表示一個讀請求需要的機(jī)器參與數(shù),W表示一個寫請求需要的機(jī)器參與數(shù)配置R+W>N暫時性故障處理:hintedhandoff永久性故障處理:基于MerkleTree的副本同步Cassandra概述混合型的非關(guān)系數(shù)據(jù)庫以完全分布式的Dynamo為基礎(chǔ),集合了Bigtable基于列簇的數(shù)據(jù)模型優(yōu)點(diǎn)分布式基于column的結(jié)構(gòu)化高可擴(kuò)展性缺點(diǎn)最終一致性不支持多個key之間的原子操作不支持分布式事務(wù)Dynamo數(shù)據(jù)模型Dynamo數(shù)據(jù)分布與副本與Dynamo類似,基于DHT(分布式哈希表)數(shù)據(jù)寫入多個節(jié)點(diǎn),可折衷CAP(一致性,可用性和網(wǎng)絡(luò)分區(qū))MongoDB概述為Web應(yīng)用提供在線服務(wù)優(yōu)點(diǎn)結(jié)合了NoSQL數(shù)據(jù)庫的可擴(kuò)展性和傳統(tǒng)RDBMS的功能提供強(qiáng)一致性保證(fullyserializableACID)和高可用性面向集合存儲,易存儲對象類型的數(shù)據(jù)提供傳統(tǒng)的數(shù)據(jù)庫功能缺點(diǎn)在32位模式運(yùn)行時支持的最大文件尺寸為2GBMongoDB數(shù)據(jù)模型面向集合(collection-oriented)數(shù)據(jù)被分組存儲在數(shù)據(jù)集中,被稱為一個集合(collection),相當(dāng)于RDMBS里的表(talbe)每個集合在數(shù)據(jù)庫中都有唯一的標(biāo)示,可以包含多個文檔文檔使用key-value形式存放模式自由(schema-free)對于存儲在mongodb數(shù)據(jù)庫中的文件,可以有不同結(jié)構(gòu)MongoDB系統(tǒng)架構(gòu)在交互的應(yīng)用中使用paxos協(xié)議,保證多副本跨數(shù)據(jù)中心的同步包括一個clientlibrary和多個server本地使用bigtable存儲CouchDB概述面向文檔的數(shù)據(jù)庫,無中心節(jié)點(diǎn)架構(gòu)與mongoDB很類似相同點(diǎn)

數(shù)據(jù)存儲格式都是是json,使用javascript進(jìn)行操作,支持map/reduce不同點(diǎn)CouchDB是一個MVCC系統(tǒng),mongoDB是一個update-in-place系統(tǒng)MongoDB能夠通過sharding實(shí)現(xiàn)水平擴(kuò)展MongoDB支持動態(tài)查詢,CouchDB必須為每一個查詢模式建立相應(yīng)viewCouchDB是RESTFul的數(shù)據(jù)庫,操作完全走HTTP協(xié)議,mongoDB是自己的二進(jìn)制協(xié)議Redis概述RemoteDictionaryServer本質(zhì)上是一個key-value類型的內(nèi)存數(shù)據(jù)庫,很像memcached,定期通過異步操作將內(nèi)存數(shù)據(jù)持久化優(yōu)點(diǎn)提供多種語言的AP除了常規(guī)的數(shù)值或字符串,Redis的鍵值還可以是以下形式Lists(列表),Sets(集合),Sortedsets(有序

溫馨提示

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

評論

0/150

提交評論