Directory

內容傳遞網路的遠端 I/O 成本

  • March 13, 2015

據我所知,由於 I/O 成本,掃描目錄的時間複雜度和所述目錄中的文件數量是相關的。將文件放在散列目錄樹中以通過 CDN API 上傳/下載文件的管理成本是否值得為提高效率而付出?

例如,給定一個文件名foo.mp3,它的MD5雜湊是10ebb1120767e9de166e0f5905077cb1. 因此,儲存foo.mp3./10/eb/foo.mp3每個目錄中將允許更少的文件(假設 MD5 在 Base36 中生成模式,這允許36^2根目錄36^2每個子目錄和雜湊衝突的可能性很小)

考慮到目錄本身沒有載入,直接上傳/下載目錄掃描的I/O成本是否仍然存在?

從理論上講,這種技術會大大降低頻寬成本,但也會增加 CPU 成本。我建議你看看Rsync,看看這個工具是如何在不使用雜湊目錄的情況下解決這個問題的。同樣給定特定的數據模式,可能會發生雜湊衝突,其中兩個文件具有完全相同的 MD5 雜湊。如果特定文件的新舊版本具有相同的 MD5 雜湊值,這只會成為問題。這種情況很少見,但確實會發生。

引用自:https://serverfault.com/questions/418654