On 12/01/2023 20:16, RogerT wrote:
Pourquoi : pour prendre des décisions de traitement sur évènement «
fichier créé/modifié/supprimé/etc. ».
FS : ext4 ou btrfs ou nfs.
NFS va poser problème. Il est connu et documenté que inotify ne
fonctionne pas avec NFS, mais avec des systèmes de fichiers locaux et
natifs à Linux (dont ext4 et btrfs).
Qté de fichiers : il y a différents cas ;
1/ surveiller un répertoire où sont déposés des fichiers
régulièrement, qui vont en être enlevés après traitement ; ici, le
nombre de fichiers présents à chaque instant sera de l’ordre d’une
centaine, voire d’un millier pour constituer une file d’attente si le
traitement est long et que le flux de dépôt de fichiers augmente.
A mon avis, c'est faisable programmatiquement (en C++ ou Rust ou C ou
Ocaml) sur une machine Linux suffisamment puissante (disons 32Go de RAM
au moins, et 8 cœurs). Il faut lire
https://man7.org/linux/man-pages/man7/inotify.7.html où on peut lire les
limitations:
The inotify API does not report file accesses and modifications
that may occur because ofmmap(2)
<https://man7.org/linux/man-pages/man2/mmap.2.html>,msync(2)
<https://man7.org/linux/man-pages/man2/msync.2.html>, andmunmap(2)
<https://man7.org/linux/man-pages/man2/munmap.2.html>.
Là, je crois que inotify et ses dérivés devraient faire l’affaire sans
atteindre ses limites qui serait de 5E5 fichiers à surveiller.
2/ multiplier les surveillances pour différentes applications ; là je
dirais de l’ordre de 10E4-10E6 fichiers maximum. Je ne vois pas des
milliards de fichiers à surveiller.
Là, inotify devrait encore pouvoir servir si on ne dépasse pas sa
fameuse limite.
Mais dix millions de fichiers à surveiller, ça me parait beaucoup. Oui
bien alors, faire une programmation fine (multi-thread, mulit-processus)
qui prendra du temps (des mois de travail) et nécessiterait un
ordinateur coûteux (serveur ou desktop à 10k€, pas un NAS à 500€).
Je ne crois pas à une solution simple, rapide (basée sur inotify) et
100% fiable pour dix millions de fichiers, ou bien alors il faut
développer un gros logiciel .... Le diable est dans les détails.
Pour ma part, je cherche des partenaires intéressés par le projet
logiciel libre /RefPerSys/ en http://refpersys.org/ - contactez moi
alors par courriel (peut-être même au bureau CEA LIST
<https://list.cea.fr/> en [email protected])
Bonne soirée.
--
Basile Starynkevitch<[email protected]>
(only mine opinions / les opinions sont miennes uniquement)
92340 Bourg-la-Reine, France
web page: starynkevitch.net/Basile/