Goolge的云計(jì)算分布式數(shù)據(jù)表BigTable課件_第1頁(yè)
Goolge的云計(jì)算分布式數(shù)據(jù)表BigTable課件_第2頁(yè)
Goolge的云計(jì)算分布式數(shù)據(jù)表BigTable課件_第3頁(yè)
Goolge的云計(jì)算分布式數(shù)據(jù)表BigTable課件_第4頁(yè)
Goolge的云計(jì)算分布式數(shù)據(jù)表BigTable課件_第5頁(yè)
已閱讀5頁(yè),還剩31頁(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、Google的云計(jì)算分布式數(shù)據(jù)表BigTable1第1頁(yè),共36頁(yè)。BigTable為什么需要設(shè)計(jì)BigTable?Google需要存儲(chǔ)的數(shù)據(jù)種類(lèi)繁多網(wǎng)頁(yè),地圖數(shù)據(jù),郵件如何使用統(tǒng)一的方式存儲(chǔ)各類(lèi)數(shù)據(jù)?海量的服務(wù)請(qǐng)求如何快速地從海量信息中尋找需要的數(shù)據(jù)?BigTable:基于GFS和Chubby的分布式存儲(chǔ)系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行結(jié)構(gòu)化存儲(chǔ)和管理與GFS的聯(lián)系2第2頁(yè),共36頁(yè)。數(shù)據(jù)存儲(chǔ)可靠性高速數(shù)據(jù)檢索與讀取存儲(chǔ)海量的記錄(若干TB)可以保存記錄的多個(gè)版本Google的需求3第3頁(yè),共36頁(yè)。與寫(xiě)操作相比,數(shù)據(jù)記錄讀操作占絕大多數(shù)工作負(fù)載單個(gè)節(jié)點(diǎn)故障損壞是常見(jiàn)的磁盤(pán)是廉價(jià)的可以不提供標(biāo)準(zhǔn)接口Googl

2、e既能控制數(shù)據(jù)庫(kù)設(shè)計(jì),又能進(jìn)行應(yīng)用系統(tǒng)設(shè)計(jì)假設(shè)4第4頁(yè),共36頁(yè)。具有廣泛的適應(yīng)性支持Google系列產(chǎn)品的存儲(chǔ)需求具有很強(qiáng)的可擴(kuò)展性根據(jù)需要隨時(shí)加入或撤銷(xiāo)服務(wù)器應(yīng)對(duì)不斷增多的訪問(wèn)請(qǐng)求高可用性單個(gè)節(jié)點(diǎn)易損,但要確保幾乎所有的情況下系統(tǒng)都可用簡(jiǎn)單性簡(jiǎn)單的底層系統(tǒng)可減少系統(tǒng)出錯(cuò)概率,為上層開(kāi)發(fā)帶來(lái)便利設(shè)計(jì)目標(biāo)5第5頁(yè),共36頁(yè)??傮w上,與關(guān)系數(shù)據(jù)庫(kù)中的表類(lèi)似邏輯視圖Row KeyTime StampColumn ContentsColumn AnchorColumn “mime”my.look.ca“n.www”T9CNNT8CNN.COMT6“. “Text/htmlT5“. “t3“. “6關(guān)

3、系數(shù)據(jù)庫(kù)中的表是什么樣的?有什么特征?關(guān)系數(shù)據(jù)庫(kù)中的表設(shè)計(jì)需要遵循什么原則?第6頁(yè),共36頁(yè)。行每行數(shù)據(jù)有一個(gè)可排序的關(guān)鍵字和任意列項(xiàng)字符串、整數(shù)、二進(jìn)制串甚至可串行化的結(jié)構(gòu)都可以作為行鍵表按照行鍵的“逐字節(jié)排序”順序?qū)π羞M(jìn)行有序化處理表內(nèi)數(shù)據(jù)非常稀疏,不同的行的列的數(shù)完全目可以大不相同URL是較為常見(jiàn)的行鍵,存儲(chǔ)時(shí)需要倒排統(tǒng)一地址域的網(wǎng)頁(yè)連續(xù)存儲(chǔ),便于查找、分析和壓縮數(shù)據(jù)模型/index.aspcom.baidu.mp3/index.asp7第7頁(yè),共36頁(yè)。列特定含義的數(shù)據(jù)的集合,如圖片、鏈接等可將多個(gè)列歸并為一組,稱(chēng)為族(family)采用 族:限定詞 的語(yǔ)法規(guī)則進(jìn)行定義fileattr

4、:owning_group”, “fileattr:owning_user”, etc同一個(gè)族的數(shù)據(jù)被壓縮在一起保存族是必須的,是BigTable中訪問(wèn)控制的基本單元數(shù)據(jù)模型8第8頁(yè),共36頁(yè)。時(shí)間戳保存不同時(shí)期的數(shù)據(jù),如“網(wǎng)頁(yè)快照”“A big table”表中的列可以不受限制地增長(zhǎng)表中的數(shù)據(jù)幾乎可以無(wú)限地增加數(shù)據(jù)模型通過(guò)(row, col, timestamp)查詢通過(guò)(row, col, MOST_RECENT)查詢9第9頁(yè),共36頁(yè)。無(wú)數(shù)據(jù)校驗(yàn)每行都可存儲(chǔ)任意數(shù)目的列BigTable不對(duì)列的最少數(shù)目進(jìn)行約束任意類(lèi)型的數(shù)據(jù)均可存儲(chǔ)BigTable將所有數(shù)據(jù)均看作為字符串?dāng)?shù)據(jù)的有效性校驗(yàn)由

5、構(gòu)建于其上的應(yīng)用系統(tǒng)完成一致性針對(duì)同一行的多個(gè)操作可以分組合并不支持對(duì)多行進(jìn)行修改的操作符數(shù)據(jù)模型10第10頁(yè),共36頁(yè)。物理視圖Row KeyTime StampColumn: ContentsCn.wwwT6“.”T5“.”T3“.”Row KeyTime StampColumn: AnchorCn.wwwT9Anchor:CNNT5Anchor:my.look.caCNN.COMRow KeyTime StampColumn: mimeCn.wwwT6text/htmlRow KeyTime StampColumn ContentsColumn AnchorColumn “mime”my

6、.look.ca“n.www”T9CNNT8CNN.COMT6“. “Text/htmlT5“. “t3“. “11第11頁(yè),共36頁(yè)。邏輯上的“表”被劃分為若干子表(Tablet)每個(gè)Tablet由多個(gè)SSTable (Sorted String Table)文件組成SSTable文件存儲(chǔ)在GFS之上每個(gè)子表存儲(chǔ)了table的一部分行元數(shù)據(jù):起始行鍵、終止行鍵如果子表體積超過(guò)了閾值(如200M),則進(jìn)行分割物理視圖12第12頁(yè),共36頁(yè)。SSTable可持久化(Persistent)、有序的(Sorted)、不可變的(Unchangeable)鍵值關(guān)系(Key-Value);鍵和值是任意長(zhǎng)度

7、的字符串;由多個(gè)塊(Block)構(gòu)成,塊大小可配置(默認(rèn)64KB)。存儲(chǔ)在GFS;由位于SSTable結(jié)尾的塊索引(Block Index)來(lái)定位塊;索引中的鍵是有序的。索引加載進(jìn)內(nèi)存用于查詢鍵的偏移量(Offset)??刹捎枚植檎宜惴?;SSTable序列化為文件后不可變,如果改變鍵值位置將會(huì)造成大量數(shù)據(jù)的移動(dòng),開(kāi)銷(xiāo)較大;順序的讀取SSTable文件可以構(gòu)造好一個(gè)索引。物理視圖13第13頁(yè),共36頁(yè)。BigTable集群:主服務(wù)器、片服務(wù)器體系結(jié)構(gòu)14第14頁(yè),共36頁(yè)。為每個(gè)子表服務(wù)器分配子表,對(duì)外提供服務(wù)與GFS垃圾回收進(jìn)行交互,收回廢棄的SSTable探測(cè)子表服務(wù)器的故障與恢復(fù)負(fù)載均衡

8、主節(jié)點(diǎn)的職責(zé)有效緩解單點(diǎn)故障15第15頁(yè),共36頁(yè)。子表服務(wù)器故障16第16頁(yè),共36頁(yè)。子表服務(wù)器故障17第17頁(yè),共36頁(yè)。子表服務(wù)器故障18第18頁(yè),共36頁(yè)。Tablet的定位Chubby file stores address of Root tablet;Root tablet is the first slice of METADTA tablets, which stores addresses of other tablets;Each METADATA tablet stores address of User table;Tablets are maintained by

9、 corresponding Tablet Servers;數(shù)據(jù)訪問(wèn)方式19第19頁(yè),共36頁(yè)。任何對(duì)子表的寫(xiě)操作都會(huì)記錄到一個(gè)存儲(chǔ)在GFS之上的commit log中每個(gè)子表服務(wù)器上所有子表變化對(duì)應(yīng)于一個(gè)commit log新的數(shù)據(jù)存儲(chǔ)到子表服務(wù)器的內(nèi)存(memtable)中次壓縮舊數(shù)據(jù)存儲(chǔ)在SSTable中,而新數(shù)據(jù)存放在memtable中當(dāng)memtable體積超過(guò)一定閾值,將形成SSTable,并寫(xiě)入GFS每個(gè)tablet對(duì)應(yīng)多個(gè)SSTable數(shù)據(jù)寫(xiě)的流程20第20頁(yè),共36頁(yè)。tablet含有多個(gè)SSTable導(dǎo)致查詢效率低合并壓縮操作讀取多個(gè)SSTable,創(chuàng)建一個(gè)新的SSTable

10、來(lái)保持其中的最新數(shù)據(jù)舊的SSTable刪除如果合并壓縮操作完成后,tablet只包含一個(gè)SSTable,那么該操作也稱(chēng)為主壓縮合并壓縮21第21頁(yè),共36頁(yè)。數(shù)據(jù)存儲(chǔ)與讀取流程22第22頁(yè),共36頁(yè)。新的故障子表服務(wù)器內(nèi)存中的memtable丟失恢復(fù)方法按照tablet將該服務(wù)器對(duì)應(yīng)的日志分片為每個(gè)失效tablet分配新的子表服務(wù)器新子表服務(wù)器讀取對(duì)應(yīng)的分段commit log,并按照日志修改tablet刪除commit log中已實(shí)施的內(nèi)容重新對(duì)外提供服務(wù)子表服務(wù)器故障恢復(fù)23第23頁(yè),共36頁(yè)。局部性群組(Locality Group)根據(jù)需要,將原本不存儲(chǔ)在一起的數(shù)據(jù),以列族為單位存儲(chǔ)至

11、單獨(dú)的子表如用戶對(duì)網(wǎng)站排名、語(yǔ)言等分析信息感興趣,那么可以將這些列族放至單獨(dú)的子表,減少無(wú)用信息讀取,改善存取效率布隆過(guò)濾器(Bloom Filter)什么是布隆過(guò)濾器?判斷某個(gè)元素是否隸屬于集合優(yōu)點(diǎn):誤判概率低,其存儲(chǔ)空間僅為Hash表的1/8至1/4用于判斷列鍵是否位于SSTable中,快速確定某個(gè)列鍵的位置性能優(yōu)化24第24頁(yè),共36頁(yè)。BigTable小結(jié)25第25頁(yè),共36頁(yè)。Google云計(jì)算架構(gòu)中GFS、MapReduce和BigTable中是否存在集群節(jié)點(diǎn)復(fù)用的情況?如何復(fù)用?節(jié)點(diǎn)復(fù)用的好處有哪些?Google云計(jì)算架構(gòu)的設(shè)計(jì)對(duì)你有哪些啟發(fā)?有哪些收獲?綜合討論第26頁(yè),共36

12、頁(yè)。Goolge的云計(jì)算Google App Engine27第27頁(yè),共36頁(yè)。Google App Engine是隸屬于PaaS類(lèi)型的云服務(wù)一個(gè)計(jì)算環(huán)境,支持Python和Java語(yǔ)言可使用Google的基礎(chǔ)服務(wù),如BigTable和GFS等用戶僅需提供應(yīng)用代碼,無(wú)需服務(wù)器維護(hù)應(yīng)用程序可根據(jù)訪問(wèn)量和數(shù)據(jù)存儲(chǔ)需要的增長(zhǎng)輕松進(jìn)行擴(kuò)展簡(jiǎn)介28第28頁(yè),共36頁(yè)。特性動(dòng)態(tài)網(wǎng)絡(luò)服務(wù)功能,能夠完全支持常用的網(wǎng)絡(luò)技術(shù)具有持久存儲(chǔ)的空間,可支持查詢、分類(lèi)等基本操作具有自主平衡網(wǎng)絡(luò)和系統(tǒng)的負(fù)載、自動(dòng)進(jìn)行擴(kuò)展的功能可對(duì)用戶的身份進(jìn)行驗(yàn)證,并且支持使用Google賬戶發(fā)送郵件具有一個(gè)功能完整的本地開(kāi)發(fā)環(huán)境,開(kāi)發(fā)

13、人員可以在自身的計(jì)算機(jī)上模擬 Google App Engine環(huán)境應(yīng)用程序環(huán)境29第29頁(yè),共36頁(yè)。沙盒一個(gè)虛擬環(huán)境將開(kāi)發(fā)者開(kāi)發(fā)的應(yīng)用程序隔離在自身的安全可靠的環(huán)境中,該環(huán)境和網(wǎng)絡(luò)服務(wù)器的硬件、系統(tǒng)以及物理位置完全無(wú)關(guān)僅提供開(kāi)發(fā)人員對(duì)基礎(chǔ)操作系統(tǒng)的有限訪問(wèn)權(quán)限可以對(duì)開(kāi)發(fā)人員進(jìn)行更多的限制只能通過(guò)網(wǎng)址抓取API和郵件服務(wù)API訪問(wèn)其他計(jì)算機(jī)其他計(jì)算機(jī)只能通過(guò)HTTP或HTTPS與沙盒應(yīng)用交互應(yīng)用程序無(wú)法對(duì)平臺(tái)文件系統(tǒng)進(jìn)行寫(xiě)入操作,只能讀取代碼文件應(yīng)用程序必須使用平臺(tái)的Data Store來(lái)存儲(chǔ)應(yīng)用程序運(yùn)行期間持續(xù)存在的數(shù)據(jù)應(yīng)用程序環(huán)境通過(guò)隔離來(lái)保證平臺(tái)和其他開(kāi)發(fā)者的安全30第30頁(yè),共36頁(yè)。圖像操作API開(kāi)發(fā)人員可通過(guò)該API對(duì)JPEG和PNG圖像進(jìn)行縮放、裁剪、旋轉(zhuǎn)和翻轉(zhuǎn)等操作郵件API為開(kāi)發(fā)人員開(kāi)發(fā)的應(yīng)用程序提供電子郵件發(fā)送服務(wù)Memcache API高性能的內(nèi)存鍵值緩存,用戶可使用應(yīng)用程序訪問(wèn)該緩存可提高應(yīng)用程序的性能并減少數(shù)據(jù)庫(kù)的負(fù)載網(wǎng)址抓取API可以使用HTTP或HTTPS等網(wǎng)址來(lái)對(duì)數(shù)據(jù)進(jìn)行檢索平臺(tái)服務(wù)31第31頁(yè),共36頁(yè)。用戶API使應(yīng)用程序與Google帳號(hào)集成,支持Google帳號(hào)身份認(rèn)證數(shù)據(jù)庫(kù)API為用戶提供查詢引擎和事務(wù)存儲(chǔ)服務(wù)平臺(tái)服務(wù)32第32頁(yè),共36頁(yè)。Hello Worldprint Content-Type: text/pl

溫馨提示

  • 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)論