TL; DR answer: use discos mais rápidos.
Sério, essa é a resposta simples. Se você quiser ter "uma árvore de diretórios enorme, com vários níveis de profundidade e um número (muito) grande de arquivos pequenos em cada nível", para redefinir permissões em qualquer parte da árvore de diretórios, é necessário executar operações de E / S em cada arquivo. Isso leva tempo, e se você estiver usando algo como discos SATA S-L-O-W 5400-rpm para armazenamento, isso leva ainda mais tempo. Discos lentos como esse são limitados a cerca de 40-50 operações IO por segundo, e não há nada que você possa fazer para melhorar isso. Se você precisar atualizar milhões de arquivos em cerca de 15 a 20 arquivos por segundo por disco, isso levará tempo. O sistema de arquivos realmente não importa muito quando esse é o trabalho que você tem que fazer.
Boas unidades SATA de 7.200 RPM RPM podem obter cerca de 70 operações IO por segundo, e unidades SAS realmente boas e rápidas podem obter 200-300 operações IO por segundo. SSDs podem fazer milhares.
E como os metadados do arquivo tendem a ser espalhados pelo disco em praticamente todos os sistemas de arquivos, não há muito que um sistema de arquivos possa fazer para melhorar o desempenho, a menos que você entre em sistemas de arquivos complexos e caros como o IBM GPFS ou o Oracle QFS. eles estão chamando eles agora. Ibrix da HP também pode funcionar para você, se ainda estiver vendendo. Mas esses sistemas de arquivos são caros e exigem experiência significativa para administrar.
Você pode tentar limitar as operações de E / S feitas pelo NTFS definindo HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisableLastAccessUpdate
a 1
do padrão 0
. Isso, pelo menos, desativará as atualizações de tempo de acesso quando você estiver vasculhando as permissões de atualização da árvore de diretórios. Pode ajudar um pouco.
A melhor resposta é projetar um sistema que não exija grandes alterações em um armazenamento massivo de dados. Porque esse é um projeto realmente muito ruim quando "o requisito real é uma mudança quase instantânea (ou o negócio sofre)".