Almacenamiento y acceso a hasta 10 millones de archivos en Linux

Estoy escribiendo una aplicación que necesita almacenar muchos archivos de hasta aproximadamente 10 millones.

Actualmente se nombran con un UUID y tendrán alrededor de 4 MB cada uno pero siempre el mismo tamaño. Leer y escribir desde / hacia estos archivos siempre será secuencial.

2 preguntas principales Estoy buscando respuestas para:

1) ¿Qué sistema de archivos sería mejor para esto? XFS o ext4? 2) ¿Sería necesario almacenar los archivos debajo de subdirectorios para reducir el número de archivos dentro de un solo directorio?

Para la pregunta 2, noto que las personas han intentado descubrir el límite de XFS para la cantidad de archivos que puede almacenar en un solo directorio y no han encontrado el límite que excede los millones. No notaron problemas de rendimiento. ¿Qué pasa con ext4?

Buscando entre personas que hacen cosas similares, algunas personas sugirieron almacenar el número de inodo como un enlace al archivo en lugar del nombre de archivo para el rendimiento (esto está en un índice de base de datos. Que también estoy usando). Sin embargo, no veo una API utilizable para abrir el archivo por número de inodo. Esa parece ser más una sugerencia para mejorar el rendimiento bajo ext3 que no tengo la intención de usar por cierto.

¿Cuáles son los límites ext4 y XFS? ¿Qué beneficios de rendimiento hay de uno sobre el otro y podría ver una razón para usar ext4 sobre XFS en mi caso?

Respuestas a la pregunta(2)

Su respuesta a la pregunta