色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

Bigtable和MapReduceGFS之間的關系是什么

黃文隆2年前15瀏覽0評論

Bigtable和MapReduceGFS之間的關系是什么?

GFS、Bigtable、MapReduce的關系

GFS(Google File System)使Google的分布式文件系統,Bigtable也是構建在GFS之上的,MapReduce也需要利用GFS作為數據的輸入和輸出。

Bigtable是什么

Bigtable是分布式表格系統,表格由很多行組成,每行通過一個rowkey唯一標識,每行包含很多列,多個列組成列族。列族是訪問控制的基本單元。Bigtable構建在GFS之上,并且依賴于Goole的Chubby進行服務器的選舉和全局信息的維護。

讀寫

當有客戶端向 發送寫操作時,它會先向 tablet log追加一條記錄,在日志成功追加之后再向 memtable 中插入該條記錄,寫比較方便。

當有客戶端進行讀操作時,會在 memtable 和 SSTable 上進行合并查找。讀就比較復雜了,還需要確認數據在哪里,當然這里會使用很多優化的方法,比如緩存數據,使用Bloom lters快速確認數據是不是存在一個SSTable里。

memtable和SSTable中的數據都是有序的,SSTable是由memtable生成的,當memtable達到一定量時,就會被凍結,新的memtable就會被生成,被凍結的memtable就會轉化成SSTable,并寫入到GFS上。

LevelDB 是對Bigtable 論文中描述的鍵值存儲系統的實現,并且由 Bigtable 的作者 Jeff Dean 和 Sanjay Ghemawat 共同完成,可以參考下LevelDB的實現。

總結

了解Bigtable,需要了解下LSM樹,現在的數據存儲引擎一般就是哈希、B樹、LSM樹。像我們使用的mysql的InnoDB存儲引擎就是B+樹。

希望對你有所幫助,有幫助記得點贊哦!可以關注下,后面持續分享架構和Java的文章,謝謝!