fsfs

fsfs

一種不需要資料庫的存儲系統

基本介紹

  • 外文名:FSFS
  • 方式:檔案系統
  • 替代:基於Berkeley DB的實現
  • 領域:程式設計
簡介,性能特性,

簡介

FSFS 採用檔案系統的方式, 替代原來的基於Berkeley DB的實現.
一種不需要資料庫的存儲系統。FSFS版本庫在單一檔案中存儲修訂版本樹,所以版本庫中所有的修訂版本都在一個子資料夾中有限的幾個檔案里。事務在單獨的子目錄中被創建,創建完成後,一個單獨的事務檔案被創建並移動到修訂版本目錄,這保證提交是原子性的。因為一個修訂版本檔案是持久不可改變的,版本庫也可以做到熱備份,就象Berkeley DB版本庫一樣。
修訂版本檔案格式代表了一個修訂版本的目錄結構,檔案內容,和其它修訂版本樹中相關信息。不像Berkeley DB資料庫,這種存儲格式可跨平台並且與CPU架構無關。因為沒有日誌或用到共享記憶體的檔案,資料庫能被網路檔案系統安全的訪問和在唯讀環境下檢查。缺少資料庫花消同時也意味著版本庫的總體體積可以稍小一點。

性能特性

FSFS也有一種不同的性能特性。當提交大量檔案時,FSFS使用O(N)算法來追加條目,而Berkeley DB則用(N^2)算法來重寫整個目錄。另一方面,FSFS通過寫入與上一個版本比較的變化來記錄新版本,這也意味著獲取最新修訂版本時會比Berkeley DB慢一點,提交時FSFS也會有一個更長的延遲,在某些極端情況下會導致客戶端在等待回應時逾時。
最重要的區別是當出現錯誤時FSFS不會楔住的能力。如果使用Berkeley DB的進程發生許可錯誤或突然崩潰,資料庫會一直無法使用,直到管理員恢復。假如在套用FSFS版本庫時發生同樣的情況,版本庫不會受到任何干擾,最壞情況下也就是會留下一些事務數據。
唯一真正對FSFS不利的是相對於Berkeley DB的不成熟,缺乏足夠的使用和壓力測試,許多關於速度和可擴展性的判斷都是建立在良好的猜測之上。在理論上,它承諾會降低管理員新手的門檻並且更加不容易發生問題。在實踐中,只有時間可以證明。
總之,這兩個中並沒有一個是更正式的,訪問版本庫的程式與採用哪一種實現方式無關。通過上文和下表(從總體上比較了Berkeley DB和FSFS版本庫),讀者可以自行選擇自己需要的存儲方式。

相關詞條

熱門詞條

聯絡我們