taobao自主研發分布式檔案系統tfs(taobao file system)的訊息早有耳聞,最初來自網路上的一篇報道(或稱軟文)-「深度揭秘**自主研發的檔案系統tfs」。因為個人研究興趣和工作內容相關的緣故,對tfs產生了很大的興趣,很是期待和關注。tfs前面一直傳說大致在2010.09月進行開源發布,國慶前後未能跟進關注,節後驀然發現tfs已經於2010.09.29在taobao的開源平台發布了,http://code.taobao.org/project/view/366/。網路上大家都戲稱,tfs對時間把握真是太到位了,taobao言必行,在9月的最後一天兌現了自己的承諾。
正如大家所說,國內自主研發的檔案系統真是可謂鳳毛麟角,開源的檔案系統就更是罕見,我現在所知道是就是fastdfs和tfs。從這個意義上,taobao的開源精神是很值得稱道的。fastdfs的開發者餘慶和lvs的開發者章文嵩都在taobao工作,我想這兩位開源高手應該對tfs有著較大的影響,再借助taobao的實力和平台,tfs的未來非常值得開源界和儲存界期待。
tfs官方稱「tfs(taobao filesystem)是乙個高可擴充套件、高可用、高效能、面向網際網路服務的分布式檔案系統,其設計目標是支援海量的非結構化資料」。我個人花了點時間研究一下tfs的原始碼和相關技術文件,tfs與目前一些主流的開源分布式檔案系統設計思想是相似的,如hdfs, mfs, kfs, sector。tfs的高可擴充套件、高可用性是很好的,然而也存在一定不足,如通用性、使用者介面、效能等方面。我這裡粗略羅列一些自己認為tfs的不足之處,不當之處還請大家指正。
2、效能方面。client寫檔案是同步處理的,需要等所有dataserver寫成功後才能返回,這很是影響效能。
3、使用者介面。tfs沒有提供posix介面,提供的api也與標準介面不一致。另外,tfs有自己的檔案命名規則,如果使用者使用自定義的檔名,則需要自已維護檔名與tfs檔名之間的對映關係。
4、**方面。使用了c++實現,感覺相對臃腫一點,如果用純c實現應該會簡潔不少(可能我c中毒太深了)。**注釋基本沒有,**質量也不是很好。
5、技術文件。官方有一些文件,但顯然非常不夠深入和全面。
6、小檔案優化。官方稱針對海量小檔案的隨機讀寫訪問效能做了特殊優化,現在只看到把眾多小檔案存放與乙個block中,這與squid中的coss原理相似。其他特殊優化措施未知,lofs(lost of small files)是個難點問題。
Taobao分布式檔案系統TFS簡析
taobao自主研發分布式檔案系統tfs taobao file system 的訊息早有耳聞,最初來自網路上的一篇報道 或稱軟文 深度揭秘 自主研發的檔案系統tfs 因為個人研究興趣和工作內容相關的緣故,對tfs產生了很大的興趣,很是期待和關注。tfs前面一直傳說大致在2010.09月進行開源發布...
分布式 分布式鎖
本質是利用redis的setnx 方法的特性來加鎖,setnx 即key不存在則設定key,否則直接返回false,要求在分布式系統中使用同乙個redis服務,以下提供兩種解決方案 1 直接使用redistemplate 這其實並不能完全保證高併發下的安全問題,因為可能在鎖過期之後該執行緒尚未執行完...
分布式 分布式事務
是資料庫執行過程中的乙個邏輯單位,由乙個有限的資料庫操作序列構成。事務的acid四大特性 原子性 atomicity 事務作為乙個整體被執行。一致性 consistency 從乙個一致的狀態轉換到另乙個一致的狀態。隔離性 isolation 多個事務併發執行時,併發事務之間互相影響的程度。永續性 d...