下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、海量小文件將嚴(yán)重影響系統(tǒng)的性能,主要是因為文件數(shù)過大,文件系統(tǒng)對文件尋址的開銷比較大,這會導(dǎo)致文件系統(tǒng)性能低下,甚至導(dǎo)致死機(jī)等現(xiàn)象。FastDFS 3.0將對小文件進(jìn)行優(yōu)化。使用業(yè)界普遍采用的做法,將多個小文件存儲到一個較大的文件中,比如64MB的文件,這個存儲實體文件不妨稱作trunk file。因為對小文件采用trunk file存儲方式,F(xiàn)astDFS 3.0將對trunk file可使用的區(qū)塊進(jìn)行管理,管理方式和內(nèi)存管理類似。對于大于一定大小的文件,比如閥值為trunk file size的4/5,則不再保存到trunk file中,直接保存為一個單獨的文件。storage serve
2、r內(nèi)置trunk manager的功能,在storage server上對trunk file可用區(qū)塊進(jìn)行管理。在一個時間點,一個group只有一臺storage server提供管理和查詢服務(wù),簡稱trunk manager。該group的其余storage server作為備機(jī),只接收binlog。如何做到一個group只有一臺storage server提供trunk管理服務(wù),這個由tracker server統(tǒng)一協(xié)調(diào)完成。如果承擔(dān)trunk manager那臺storage server掛了,本組其余的一臺storage server會自動升級為trunk manager,接替其工作。
3、當(dāng)storage server要存儲一個小于閥值的文件(也就是小文件)時,先詢問trunk manager,trunk manager返回存儲到的trunk file文件名,以及存儲起始的偏移量。當(dāng)storage server成功完成文件存儲后,向trunk manager報告。如果報告失敗,則文件上傳當(dāng)失敗處理。trunk manager管理方案說明:trunk manager將trunk相關(guān)數(shù)據(jù),全部存放到內(nèi)存中管理。對于trunk更新操作(包括增加和刪除兩種),會記錄到單獨的binlog文件中,有專門的線程將binlog文件同步給本組的其他storage server。為了節(jié)約內(nèi)存空間,
4、trunk file文件名,會單獨存放。trunk file可用空間鏈表中,trunk filename采用指針方式指向。當(dāng)storage server向trunk manager請求分配文件空間時,trunk manager會先在內(nèi)存中掃描有沒有滿足條件的可用trunk,如果有,那么直接返回。否則,創(chuàng)建一個trunk file,然后將新的trunk file記錄到binlog和內(nèi)存中,并完成分配。為了提高分配效率,trunk manager將采取slot的方式對可用空間進(jìn)行組織,比如初始的字節(jié)數(shù)為256,最大字節(jié)數(shù)為32MB,每次以2倍的速度遞增,形如:256,512, 1K, 2K, 4K
5、,。,1M,2M,4M,。,16M,32M在slot 256中的可用空間,是 >= 256,< 512的在slot 512中的可用空間,是 >= 512,< 1K的在slot 1K中的可用空間,是 >= 1K,< 2K 的以此類推。初次分配時,新創(chuàng)建的trunk file是在slot 32M中。隨著trunk file被逐漸使用,可能會從slot 32M移動到slot 16M中,后面又可能被移動到slot 1MB中,如此等等。每個slot下可用的空間信息,按可使用空間大小升序排列。這么做的好處是分配的效率會比較高,直接取第一個結(jié)點(鏈表頭)即可。為了簡潔起見
6、,不采用相鄰空閑空間合并機(jī)制。疑問解答:Q:就是說,每一組現(xiàn)在有了一臺專門用來接收文件的storage server?然后再向組內(nèi)其他server分發(fā)?這個算是單點了吧?那么,如果trunk server掛掉了,組內(nèi)其他storage server會升級成trunk server吧?升級過程是什么樣子的流程?A: 感謝LS的及時反饋。為了簡化,trunk server的確存在單點問題。為了減少單點風(fēng)險,trunk server會把更新binlog同步到同組的其他storage server上。萬一trunk server掛了,由tracker server來協(xié)調(diào),選舉出新的trunk serv
7、er。新選舉出的trunk server,從binlog中加載已有數(shù)據(jù),然后承擔(dān)trunk server的功能。判斷trunk server掛掉,有一定的超時機(jī)制。比如5分鐘內(nèi),trunk server都處于離線狀態(tài),則認(rèn)為trunk server掛掉。storage server升級為trunk server,由storage server主動申請的方式。多臺tracker server,按ip地址升序排列。storage server向第一臺tracker server申請成為trunk server,申請成功后,通知其他tracker server。Q:trunkfile元數(shù)據(jù)是保存在t
8、runkfile的開頭head中吧?在內(nèi)存中是保存所有trunkfile的元數(shù)據(jù)嗎?還是當(dāng)一個trunkfile的free空間少于一定空間后,就不再insert,也不用保存到內(nèi)存中,等delete后free空間達(dá)到一定值時再作為可選trunkfile?關(guān)于trunkfile,內(nèi)存中主要數(shù)據(jù)結(jié)構(gòu)有哪些?按什么策略找到可插入的trunkfile?能稍微詳細(xì)講下算法嗎?A:一個group由一臺stroage server承擔(dān)trunk server的職責(zé)。trunk server管理可用的trunk空間,通過AVL平衡二叉樹來組織。trunk file中,包括header和data區(qū)域兩部分。hea
9、der中記錄文件占用的空間,文件后綴名等信息,緊接著是文件內(nèi)容(data區(qū)域)。文件被刪除后,其占用空間回收到trunk server的可用空間中(作為一個結(jié)點插入到AVL tree),下次可以被重新分配利用。Version 3.06 2012-01-22* add common/avl_tree.h and common/avl_tree.c* organize trunk free blocks using AVL tree* find the trunk server for each group when current tracker be a leader*
10、common/sched_thread.c can add schedule entry dynamicly* support creating trunk file advancelyQ:AVL樹是只存在內(nèi)存還是內(nèi)存和硬盤都有?文件平均只有10K,但數(shù)量達(dá)到10億級別,頻繁刪除,能存儲嗎?有存儲大量小文件實際案例嗎?問得比較多,主要是具體算法不太清楚,測試環(huán)境不一定能反映生產(chǎn)環(huán)境情況,想從原理上多點了解,多點信心。用于生產(chǎn)環(huán)境,還是要小心。A:>>AVL樹是只存在內(nèi)存還是內(nèi)存和硬盤都有?只保存在內(nèi)存中。>>文件平均只有10K,但數(shù)量達(dá)到10億級別,頻繁刪除,能存儲嗎?
11、可以??赡苄枰譃槎鄠€group。>>有存儲大量小文件實際案例嗎?小文件合并存儲這個特性是去年6月份發(fā)布的,目前還沒有收到使用這個特性的用戶反饋。Q但是我把上傳的文件全部刪除完后,發(fā)現(xiàn)服務(wù)器上的trunk文件無法刪除。依然占用著磁盤空間。roothadoop 00# ls000001 000007 000013 000019 000025 000031 000037 000043 000049
12、160;000055000002 000008 000014 000020 000026 000032 000038 000044 000050 000056000003 000009 000015 000021 000027 000033 000039
13、160;000045 000051請問作者,這些trunk文件用啥接口可以刪除。我認(rèn)為這是fastdfs的一個BUG,理論上我將trunk文件中保存的小文件全部刪除完成后,fastdfs應(yīng)該自動清除trunk文件。A刪除文件后,trunk文件中的對應(yīng)的空間會釋放的。下次再上傳文件,就可以利用已經(jīng)釋放的空間。即使一個trunk文件中的所有文件都已經(jīng)被刪除,該trunk文件也不會被物理刪除掉。但其空間是可以被利用的。Q其中“current trunk file id = 140”值在上傳文件的過程中一直在增大,理論上來說,如果trunk文件內(nèi)容被刪除后,新上傳文件如果插入到了空的trunk文件中的話,這個值應(yīng)該不會成倍的增加才對呀,因為我每次都是上傳5110個文件,然后將其刪除,然后再重新上傳。每次上傳的文件都是一樣的。A這個現(xiàn)象和trunk內(nèi)文件空間分配策略有關(guān)。目前的分配策略,會導(dǎo)致釋放后的空間,不能被同樣大小的文件使用,而只能被小一些的文件使用。Q:看了介紹,3.x的fastdfs把許多小文件合并存儲在一個t
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 感恩節(jié)講話稿集合15篇
- 師德標(biāo)兵先進(jìn)事跡材料集合15篇
- 年度考核個人述職報告15篇
- 抖音全課程培訓(xùn)
- 房產(chǎn)基礎(chǔ)知識培訓(xùn)
- 企業(yè)安全知識競賽
- 提升資金管理效率
- 2024年婦聯(lián)業(yè)務(wù)知識
- 幸福終點站觀后感10篇
- (高清版)DB21∕T 3298-2020 特種設(shè)備技術(shù)檔案管理規(guī)范
- 江蘇省蘇州市2024-2025學(xué)年高三上學(xué)期1月期末生物試題(有答案)
- 銷售與銷售目標(biāo)管理制度
- 2025年第一次工地開工會議主要議程開工大吉模板
- 第16課抗日戰(zhàn)爭課件-人教版高中歷史必修一
- 對口升學(xué)語文模擬試卷(9)-江西省(解析版)
- 糖尿病高滲昏迷指南
- 壁壘加筑未來可期:2024年短保面包行業(yè)白皮書
- 環(huán)保局社會管理創(chuàng)新方案市環(huán)保局督察環(huán)保工作方案
- 2024至2030年中國水質(zhì)監(jiān)測系統(tǒng)行業(yè)市場調(diào)查分析及產(chǎn)業(yè)前景規(guī)劃報告
- 運動技能學(xué)習(xí)
- 單側(cè)雙通道內(nèi)鏡下腰椎間盤摘除術(shù)手術(shù)護(hù)理配合1
評論
0/150
提交評論