上下文 我们有一个本地文件系统支持的缓存库。由于大量条目(例如多达 100,000 个),我们目前在一次安装时遇到性能问题。问题:我们将所有 fs 条目存储在一个“缓存目录”中。非常大的目录表现不佳。
我们正在考虑将这些条目分散到子目录中——就像 git 所做的那样,例如 100 个子目录,每个子目录大约 1,000 个条目。
问题
我知道较小的目录大小将有助于文件系统访问。
但是“传播到子目录”会加速遍历所有条目,例如枚举/读取所有 100,000 个条目吗?即当我们从 FS 存储初始化/预热缓存时,我们需要遍历所有 100,000 个条目(并删除旧条目)可能需要 10 多分钟。
“传播数据”会减少这种“遍历时间”。此外,这种“遍历”实际上可以/确实删除过时的条目(例如超过 N 天)“传播数据”会改善删除时间吗?
附加上下文 -NTFS -Windows 系列操作系统(Server 2003、2008)
-Java J2ee 应用程序。
我/我们将不胜感激任何关于文件系统可扩展性问题的教育。
提前致谢。
将要
ps 我应该评论说我有工具和能力来自己测试这个,但我想我会先选择蜂巢思维来获得理论和经验。