GlusterFS 服务器选项 cluster.readdir-optimize 控制什么?

What does the GlusterFS server option cluster.readdir-optimize control?

我一直在尝试优化我的 GlusterFS 存储集群的小文件性能。

许多论坛帖子和博客帖子似乎建议在音量上设置 cluster.readdir-optimize 属性,例如:

$ gluster volume get test-share cluster.readdir-optimize on

此选项的默认值(从 GlusterFS v3.10 开始)似乎是 off,这让我认为启用此功能必须进行一些权衡。但是,我无法在任何地方找到任何文档来准确解释此选项的作用。

我想在生产中启用它之前了解此选项的功能。

如相关 GlusterFS git 存储库 commit message 中所述,readdir-optimize 选项支持以下内容:

Bring in option which is supported by posix xlator to filter out directory's entries from being returned. DHT would now request non-first subvols to filter out directory entries.

我不完全理解这如何直接提高 GlusterFS 中小文件的性能。但根据 GlusterFS documentation,BD xalator 执行包装 GlusterFS 块后端的功能,并使 GlusterFS 卷由本身是底层逻辑卷的砖块组成。