數據庫相關的論文筆記html
爲何存儲三個副本?而不是兩個或者四個?sql
Chunk的大小爲什麼選擇64MB?這個選擇主要基於哪些考慮?數據庫
GFS主要支持append,overwrite操做比較少。爲何這樣設計?如何基於一個只支持Append操做的文件系統構建分佈式表格系統Bigtable?緩存
爲何要將數據流和控制流分開?若是不分開,如何實現Append流程?數據結構
GFS有時會出現重複記錄或者padding,爲何?架構
Lease是什麼?在GFS起什麼做用?它與heartbeat有何區別?app
GFS append過程當中若是Secondary出現故障,如何處理?若是Primary出現故障,如何處理?nosql
GFS Master須要存儲哪些信息?Master數據結構如何設計?分佈式
假設服務一千萬個文件,每一個文件1GB,Master中存儲的元數據大概佔用多少內存?.net
Master如何實現高可用性?負載的影響因素有哪些?如何計算一臺機器的load值?
Master新建chunk時如何選擇ChunkServer?若是新機器上線,load值特別低,是否須要有些特殊考慮?
若是某臺ChunkServer報廢,GFS如何處理?
若是ChunkServer下線後過一會從新上線,GFS如何處理?
如何實現分佈式文件系統的快照操做?
ChunkServer數據結構如何設計?
磁盤可能出現「位翻轉」錯誤,ChunkServer如何應對?
ChunkServer重啓後可能有一些過時的chunk,Master如何可以發現?
MapReduce和MPP架構的主要區別在哪裏?
如何採用MapReduce實現分佈式排序?須要考慮什麼問題?
如何設計Map Worker存儲中間結果的數據結構?
Reduce Worker執行過程當中若是數據量超過內存怎麼處理?
Master數據結構如何設計?
如何實現Map任務本地化?
Master如何切分任務?
爲何要有backup task?
GFS可能出現重複記錄或者padding,Bigtable如何處理這種狀況使得對外提供強一致性模型?
爲何Bigtable設計成Root、Meta、User三級結構,而不是兩級或者四級結構?
讀取某一行用戶數據,最多須要幾回請求?分別是什麼?
如何保證同一個tablet不會被多臺機器同時服務?
Tablet在內存中的數據結構如何設計?
如何設計SSTable的存儲格式?
minor、merging、major這三種compaction有什麼區別?
Tablet Server的緩存如何實現?
若是tablet出現故障,須要將服務遷移到其它機器,這個過程須要排序操做日誌。如何實現?
如何使得tablet遷移過程停服務時間儘可能短?
tablet分裂的流程是怎樣的?
tablet合併的流程是怎樣的?