Google的三大重要論文分別是Big table分布式結構化資料存盤系統,Google File System和MapReduce,對于這3篇論文我僅僅只是粗略的看了,由于有許多專業名詞所以我也不是特別了解,算是淺談了。
首先是Big table 這個分布式結構存盤系,正如它的名字結構是類似于樹狀圖一樣的,先有主干,再是分支,分成每一個細小的單元。論文中使用了一個Chubby檔案舉的例子,分成四個層次,相鄰的兩個層次之間的關系如同映射一樣,單個一個大的主干,可以映射出好幾個小的主干,并且個數不確定,大的主干與小的主干之間,聯系是以位置資訊為基礎。他有一定的極限,那就是Tablet位置資訊不會超過三層。談論API系統支持c++語言撰寫,與c語言有類似之處,應用起來方便。在之后的Big table 構件中的共享機器理念吸引了我,因為他的行程同其他的在一起,那要如何區別化呢?不僅如此通過集群系統調度檔案和處理機器故障,一起監視機器的行為如同一個反饋系統,但明顯要高級許多。在存盤方面SSTable格式顯得相對僵硬,但是持久化和不可更改保證資料的穩定性和可靠性,在尋找時候由于key和value是一一對應的,可以一次搜索完,因此又有靈活便利之處。不僅是在但個小檔案里,相對于主干的Chubby檔案服務5個活動副本,多數正常運行才可以運用,之間又有聯系,還可以保證副本一致性,可能是對于程式了解不多,所以覺得不可思議,主檔案通過演算法矯正副本不同和自然界負反饋一樣神奇。由于又是商業性質,且存盤資源是有限的,資料量又巨大,既要補充,又要洗掉,客戶程式和服務會話也是一種一一對應,以租約為紐帶,時間為界限保證了巨大復雜又不失靈活。此外只有一個master檔案為主,管理全部下級user table而在master不回應下級檔案系統又會讓其降級,重新讓最為活躍的table升為master管理,靈活的回應機制保證公平,不會出現主管檔案壞了便不能正常運用。設計人思路嚴謹靈活,考慮周全合理簡單,邏輯條理和程式可執行化是使理念得以實作直接原因。優化中的區域性群組選擇性縮短量以省時間,壓縮省空間,過濾則是包括前兩個優點,日志修改減少檔案量省時間等等都是可行簡單的。盡管性能不是簡單線性,過大集群有明顯的增長下降,負載不均衡也是必然不可避免,但是是資源重新整合利用確實有顯著價值,且可通過演算法降低,說明可塑性強,有提升空間。后期研究者可繼續多方面優化,并提供借鑒,其資料的形式是同矩陣為基礎構建。
其次是Google File System檔案系統同Big table有許多相似之處,但也有區別。例如介面都是API介面函式,但獨有提供快照和記錄追加降低成本與之不同。此外結構框架是有相似的樹狀結構,但是不同是在于每個兩兩之間都有聯系,并且是雙向關系。master服務器給每個GFS分割的Chunk 分配固定標識和Big table有明顯差異,檔案大小也不同。減少master,增加Chunk的方式,減少了訪問master再到chunk的中間環節減少時間提高效率,同時避免過多master節點對系統影響,可算是一箭雙雕。此外兩者關系有和Big table相同替選方式了。提出了元資料建立兩者對應關系,確保服務器穩定資料一致,構建一致性模型以判斷region.定義與否進行對錯判斷和修改,想的復雜和煩瑣。此外master節點操作,容錯和診斷等等都是其獨特特色。以組件失效為常態,追加方式寫入,讀取優化獨特,減小資料誤差,減少作業量。
Mapreduce的模型分map、reduce兩部分。它以GFS為基礎,利用分布式計算思想,把大量資料拆分給多個低性能電腦,處理后的結果匯總輸出。由于參與運算的計算機都是性能較低的計算機,有的master 會出現問題,無法正常作業,這時候所有的worker就會投票選出一個新的master。此外worker會每隔一定時間向master發送信號,如果master沒有接收到信號,master就會將任務分配給其他worker,當其恢復后則分配新的任務,充分利用閑置資源,節省時間。
以上是我粗略看論文疑惑和感受,就設計思路確實獨特,我對同類事物以不同思考角度觀察探索就會有不一樣結果有更深體會,也讓我知道邏輯清晰嚴謹理論和實際實驗結合才能使完美理論在現實接近理想中的完美。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/133151.html
標籤:非技術區
下一篇:有人用過wabcaus嗎?
