GFS讀後筆記

2022-08-04 00:48:17 字數 2095 閱讀 4628

ans: 可能取得某些平衡點
ans:

主要是為了優化資料傳輸,每一台機器都是把資料傳送給網路拓撲上」最近「的尚未收到資料的機器。

如果不分開,可以像傳統的主備複製的方法。

如果記錄追加操作在任何乙個副本上失敗了, 客戶端就需要重新進行操作。重新進行記錄追加的結果是,同乙個chunk的不同副本可能包含不同的資料–重複包含乙個記錄全部或者部分的資料。gfs並不保證chunk的所有副本在位元組級別是完全一致的。它只保證資料作為乙個整體原子的被至少寫入一次。
使用lease機制來保持多個副本間變更順序的一致性。目的是為了最小化master節點的管理負擔。首先由master決定乙個主chunk,主chunk對其他的chunk的所有更改操作進行序列化。hb是定時傳送的,而lease是用於變更時。客戶機把資料推送到所有的副本上。客戶機可以以任意的順序推送資料。當所有的副本都確認接收到了資料,客戶機傳送寫請求到主chunk伺服器。這個請求標識了早前推送到所有副本的資料。主 chunk為接收到的所有操作分配連續的序列號,這些操作可能來自不同的客戶機,序列號保證了操作順序執行。
客戶端的請求被確定為失敗,被修改的region處理不一致的狀態,client通過重試執行失敗的操作來處理這樣的操作。如果primary掛了,操作不會被分配序列號,不能被傳遞。
master上儲存了三種元資料資訊:

1)命名空間namespace,也就是整個檔案系統的目錄結構及chunk基本資訊;2)檔案到chunk之間的對映;3)chunk副本的位置資訊。

持久化前兩種元資料的對映。chunk資料由server啟動時上報給master.

管理每個64mb的chunk伺服器不到64byte。
快速恢復和複製。

負載的影響因素包括:網路拓撲、機器分布、磁碟利用率等。

load值:

系統中有三種需要建立chunk副本的情況:chunk建立,chunk重新複製(re-replication)以及重新平衡(rebalancing)。

當master建立了乙個chunk,它會根據如下因素來選擇chunk副本的初始位置:(1) 新副本所在的chunk server的磁碟利用率低於平均水平;(2) 限制每個chunk server」最近」建立的數量。(3)每個chunk的所有副本不能在同乙個機架。

第二點容易忽略但卻很重要,因為建立完chunk以後通常需要馬上寫入資料,如果不限制」最近」建立的數量,當一台空的chunk server上線時,由於磁碟利用率低,可能導致大量的chunk瞬間遷移到這台機器從而將它壓垮。

re-balance。當有 chunk伺服器離線了,或者通過 chksum 校驗(參考5.2節)發現了已經損壞的資料,master節點通過轉殖已有的副本保證每個 chunk 都被完整複製 。
master節點在這個chunk伺服器重新啟動,並且向 master 節點報告它擁有的 chunk 的集合以及相應的版本號的時候,就會檢測出它包含過期的chunk。如果 master 節點看到乙個比它記錄的版本號更高的版本號,master 節點會認為它和chunk伺服器簽訂租約的操作失敗了,因此會選擇更高的版本號作為當前的版本號。
增加引用,寫時拷貝。
64mb的chunk,盡可能均勻地分布在不同的磁碟之中。
chunk server會對儲存的資料維持校驗和。gfs以64mb為chunk大小來劃分檔案,每乙個chunk又以block為單位進行劃分,大小為64kb,每乙個block對應乙個32位的校驗和。當讀取乙個chunk副本時,chunk server會將讀取的資料和校驗和進行比較,如果不匹配,就會返回錯誤,客戶端將選擇其它chunk server上的副本。
當 chunk 伺服器失效時,chunk 的副本有可能因錯失了一些修改操作而過期失效。master 節點儲存了每個 chunk 的版本號,用來區分當前的副本和過期副本。

《effective Java》讀後筆記

為什麼區域性變數要宣告為 final 在jdk 1.8 之前,不用final修飾會編譯報錯。在jdk 1.8 中,不用final修飾不會報錯,但是一旦改變了變數的值就會報錯 區域性類如果乙個內部類需要在多個方法之外仍然是可見的,或者是它太長了,不適合於放在方法內部,就應該使用成員類。如果成員類的每個...

《盜墓筆記》讀後

看完南派三叔的 大漠蒼狼 本來想等完本之後再看 盜墓筆記 的,但實在還沒忍住,看了。看完之後,就一種感覺,怎麼還有這麼多坑沒填啊,說是第八本是結局,能把所有的坑填完嗎?因為沒有結局,所以看得比較快,可能還有很多坑都沒發現。看南派三叔的 大漠蒼狼 也知道,南派三叔不會把所有的坑都填,還有一些留著讓大家...

GFS的系統架構

劉鵬 雲計算 第二版 是控制流,是資料流 client 應用程式的訪問介面 master 主伺服器 管理節點,在邏輯上只有乙個,儲存系統的元資料 metadata,描述資料的資料 負責整個檔案系統的管理。chunk server 資料庫伺服器 負責具體的儲存工作。資料以檔案的形式儲存在chunk s...