为什么许多缓存或者分布式文件系统存储文件的时候喜欢用 00/00这种方式

泽坤 2016-01-13 09:13:19
看nginx的proxy_cache和fastDFS他们存储文件的时候,都是先新建了256个文件夹,如下:
00 01 02 .... 0F
10 11 12 .... 1F
.....
F0 F1........... FF
每个文件夹下面又有256个这样的文件夹,然后存文件的时候,把文件名处理之后,从前往后依次存储。这样做有什么好处么?

猜想应该有如下几种可能:
1.每个文件夹所承受的文件句柄数是有限的,通常是65535,为了避免小文件过多,造成无法在同一个文件夹下存储;
2.对每一个需要进行存储的文件进行了hash或者其他特殊的运算,存和取都按特定规则,方便取文件的时候进行查找;
3.每一个文件夹的起始位置对磁盘进行了对齐,提高读取效率。
求请大神门帮忙解释一下,尤其是不是有第2、3种可能。
...全文
1528 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
泽坤 2016-01-15
  • 打赏
  • 举报
回复
是726M说错了。
泽坤 2016-01-15
  • 打赏
  • 举报
回复
如果是有hash的成分,但是文件分布又很集中,17个文件,共175M都分布在00/00的目录下,其他目录一个都没有。我也并不是在同一天上传的。分了几天上传的。
tianfang 2016-01-13
  • 打赏
  • 举报
回复
1和2是对的

656

社区成员

发帖
与我相关
我的任务
社区描述
CDN相关技术讨论专区
服务器网络 技术论坛(原bbs)
社区管理员
  • CDN社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧