LogDevice分布式日志存儲系統(tǒng)
LogDevice 是 Facebook 開源的一個可擴展,具備容錯性的分布式日志系統(tǒng)。
LogDevice 是專為日志設(shè)計的分布式數(shù)據(jù)存儲系統(tǒng)。一般的文件系統(tǒng)會將數(shù)據(jù)儲存為文件,LogDevice 會將數(shù)據(jù)存儲為日志,這些日志可被視為記錄式的,追加式的和可修剪的文件。
記錄式的(record-oriented)意味著數(shù)據(jù)作為不可分割的記錄寫入日志,而不是單個字節(jié)。日志實質(zhì)上是問題的最小單元,用戶也一定是讀取整行日志。日志的存儲原則是按照日志序列號(LSN)來存放,且編號不保證是連續(xù)的,可能存在間隙。作者不會事先知道成功寫入后將為其日志分配什么 LSN ,這樣日志系統(tǒng)就可以優(yōu)先高寫入需求,對寫入失敗容錯。
日志是追加式的(append-only),不支持修改現(xiàn)有記錄。
日志在被刪除之前預(yù)計會存在相對較長一段時間:幾天、幾月甚至幾年。日志的主要空間回收機制是修剪(trimming),根據(jù)基于時間或基于空間的保留策略,刪除最舊的記錄,或響應(yīng)修剪日志的請求。
LogDevice 從頭開始設(shè)計,可提供大規(guī)模、高可靠性和高效率的多種日志類型。它還具備高度可調(diào)性,允許對每個用例進行優(yōu)化,以便在從耐久性到效率性,一致性到可用性中進行恰當(dāng)?shù)臋?quán)衡取舍。
LogDevice 支持的一些 workload 示例:
預(yù)寫式日志
在分布式數(shù)據(jù)庫中記錄日志
事件日志
流處理
ML 訓(xùn)練流程
復(fù)制狀態(tài)機
延期工作項目進度
