2015-02-09 70 views
0

我目前正在設計使用文件系統存儲文檔的簡單存儲庫。數百萬個文件具有未來潛力,我想用ID將一個ID映射到磁盤上的一個位置的策略是散列ID並使用部分散列來確定它應該存在的目錄。適用於大型文件集的每個文件夾的理想文件數

一個常見操作是讀取每個文件夾及其任何嵌套文件夾中的所有文件。

我的問題是:是否有理想的每個目錄的文件比例?我有 的手段,通過ID - >位置算法來控制這個比例。任何 數據回覆答案會很好。

回答

1

如果性能是您所擔心的,這將取決於您正在使用的文件系統的 類型。舊的文件系統如 ext2保持 目錄條目在一個線性列表中。在 目錄中查找特定文件可能非常昂貴。

現代文件系統,如EXT4, btrfsxfs 和其他人通常都編入索引的目錄,一個 單個文件的一個巨大的目錄的訪問時間不會是在訪問一個文件明顯 不同一個小目錄。實際上, 在多個子目錄中傳播數百萬個文件可能會使您的查詢性能比將它們全部放在單個目錄中時慢!

如果您正在編寫自己的軟件,它將對整個文件集進行大量線性 掃描或按名稱訪問單個文件,您可以採用哪種方式訪問​​它(只要你 access it the right way

我會更擔心管理 應用程序之外的文件系統。典型的系統工具(如ls)可以使用READDIR()或目錄的 線性掃描。爲防止系統管理員不必 可怕當診斷目錄 結構中的問題時遇到頭痛,我會用agr eeably叢生,並且每個目錄10k-20k條目 (假定索引目錄)將工作。

選擇佈局時,您可能希望注意限制每個目錄允許的子目錄數量(即ext4上的64000) 。

相關問題