URL: https://linuxfr.org/users/groumph/journaux/ou-sont-les-filesystems-orientes-db Title: Où sont les filesystems orientés DB? Authors: Serge Julien Date: 2019年09月11日T13:12:48+02:00 License: CC By-SA Tags: base_de_données, ged et système_de_fichiers Score: 32 Bonjour à tout le monde et aux autres aussi, Un exposé, une question et un rêve # Exposé : de quoi est-il question? En tentant d'organiser les dizaines de milliers de fichiers que j'ai amassés en quelques décennies de vie numérique, je me suis rappelé des technos qui ont existé ou sont restées à l'état de projet, mais dont je ne connais aucune implémentation actuelle. Je veux parler des systèmes de fichiers orientés DB. L'idée est que les fichiers ne sont plus classés en répertoires hiérarchiques mais indexés selon leur contenu et leurs métadonnées. Je donne un exemple simple: dans une société, on peut créer un répertoire par année (2017, 2018, 2019), puis un niveau plus bas un répertoire par client (Dupont, Martin, Durand), et dans chaque répertoire client un répertoire par type de document (offres, factures, relances...). On a donc Année -> Client -> Type_document. Mais on aurait pu organiser ça autrement, par exemple Client -> Type_document -> Année. Si je veux retrouver les factures de M. Dupont pour l'année 2018, ce qui compte en réalité n'est pas cet ordre d'accès, mais le fait que je cherche quelque chose qui est à l'intersection des critères {2018, Dupont, Facture}. Et une recherche sur des critères, c'est quelque chose que les bases de données font très bien. D'où l'idée d'intégrer les services d'un moteur de DB au filesystem sous-jacent. L'idée est réellement différente d'une indexation automatique qu'on applique à une arborescence. Je sais que ça existe mais ce n'est pas de cela que je veux parler ici. # La question : où en sommes-nous? Il y a bien eu BeOS avec son merveilleux [BFS](https://fr.wikipedia.org/wiki/BeOS_file_system). Je sais aussi que [Reiser4](https://fr.wikipedia.org/wiki/Reiser4) aurait dû à terme intégrer ce genre de chose. Il y a eu le projet [WinFS](https://fr.wikipedia.org/wiki/WinFS) chez Microsoft. Mais on parle là de technos respectivement sorties ou abandonnées en 1995, 2004 et 2006. Si je ne parle pas de [Spotlight](https://fr.wikipedia.org/wiki/Spotlight_(moteur_de_recherche)) de nos amis à la pomme, c'est seulement parce que je n'ai jamais eu l'occasion de l'utiliser, n'y voyez aucune censure. Et donc je me pose cette question: **Un quart de siècle après BFS, alors que le besoin est encore là, où en est-on?** # Le rêve : ce que j'aimerais pouvoir utiliser un jour Mon système idéal fonctionnerait à peu près comme ceci: * quand on y dépose un fichier, le système commence par vérifier que ce fichier n'est pas déjà présent quelque part. En fonction des paramètres, cette vérification pourrait être stricte (identité bit à bit du contenu et des métadonnées), sur le contenu seul, ou plus souple (par exemple, si une photo identique à l'orientation près est trouvée, on peut décider de s'arrêter là ou non, de manière paramétrée ou interactive) * si un fichier est considéré comme nouveau, il est ajouté au système avec quelques tags qui sont générés automatiquement (type, date de création,...) * en fonction du type, des plugins analysent le fichier pour en extraire des [méta]données qui sont proposées comme tags: les tags ID3 d'un MP3, les données EXIF d'un JPEG, les mots d'un document PDF ou ODT (avec un dictionnaire des mots à ne pas indexer, par exemple) * l'utilisateur peut aussi ajouter ses propres tags: sur la photo, c'est Durand, c'est l'anniversaire de la petite dernière, c'est le voyage de noces... Des plugins système pourraient permettre de taguer d'autres choses, comme les emails, par exemple (BeOS les indexait, je crois). En une recherche, on pourrait trouver les mails envoyés par Dupont **et** les photos sur lesquelles il apparaît **et** sa vCard. Bien sûr, je parle ici de tout ce qu'on peut considérer comme un **document**. Les besoins sont propres à chacun: bien que ce soient des fichiers, je ne me vois pas taguer mon noyau Linux ou mon .bash_history, mais vous avez peut-être d'autres pratiques que moi. Au final en tout cas, une masse de fichiers plus organisée et une interface de recherche par tags qui me semble plus appropriée que les répertoires quand il s'agit de dizaines de milliers de documents. Je suis bien incapable de créer un tel système, mais qu'est-ce que j'aimerais l'utiliser!