Taobao自主研發分佈式文件系統TFS

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的不足之處,不當之處還請大家指正。

1、通用性方面。TFS目前只支持小文件的應用,大文件應用是不支持的。對小圖片、網頁等幾十KB內的數據存儲非常適用,但對視頻點播VOD、文件下載等應用暫時無法適用。

2、性能方面。Client寫文件是同步處理的,需要等所有dataserver寫成功後才能返回,這很是影響性能。

3、用戶接口。TFS沒有提供POSIX接口,提供的API也與標準接口不一致。另外,TFS有自己的文件命名規則,如果用戶使用自定義的文件名,則需要自已維護文件名與TFS文件名之間的映射關係。

4、代碼方面。使用了C++實現,感覺相對臃腫一點,如果用純C實現應該會簡潔不少(可能我C中毒太深了)。代碼註釋基本沒有,代碼質量也不是很好。

5、技術文檔。官方有一些文檔,但顯然非常不夠深入和全面。

6、小文件優化。官方稱針對海量小文件的隨機讀寫訪問性能做了特殊優化,現在只看到把衆多小文件存放與一個Block中,這與Squid中的COSS原理相似。其他特殊優化措施未知,LOFS(Lost of small files)是個難點問題。


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/liuben/archive/2010/10/17/5946583.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章