Skip to content

Modifie la structure du dossier d’archivage des fichiers importés

Ronan Amicel requested to merge restructure-archive into main

Motivation

Maintenant qu'on accumule toutes les versions importées dans le dossier archive, on récupère plus de choses que nécessaire via rsync lorsqu’on fait un make fetch ou un make bootstrap, localement ou bien dans le job non-regression sur la CI.

Contenu

La structure du dossier archive est maintenant la suivante :

archive/
├── dataset1/
│   ├── 2023-06-14_08-22-47/
│   │   └── fichier.csv
│   ├── 2023-06-15_11-55-28/
│   │   └── fichier.csv
│   └── latest → 2023-06-15_11-55-28
└── dataset2/
    ├── ...

Dans le répertoire archive, on crée un sous-répertoire pour le jeu de données, avec le nom de la table SQL.

Dans ce répertoire, on crée un sous-répertoire avec le timestamp de l’import.

On copie le fichier importé vers ce sous-répertoire, sans changer son nom.

Pour économiser de l’espace disque, si le fichier est le même qu’un fichier importé précédemment, on crée un hard-link vers celui-ci.

Enfin, on fait pointer le lien symbolique latest vers le répertoire d’import.

Autres approches envisagées

J’ai d’abord essayé de modifier le Makefile pour déterminer de manière plus intelligente la liste des fichiers à récupérer, en listant le plus récent dans chaque sous-répertoire. cf. !432 (closed)

Je suis parvenu à un truc qui marche en local, mais assez illisible dans son imbrication de syntaxe Makefile, bash, et les multiples niveaux d’échappement nécessaire.

Un des problèmes rencontrés était que les fichiers récupérés ayant un timestamp, il fallait le retirer pour qu’insitu les reconnaisse. (Mais les plus anciens n’en avaient pas. J’ai donc homogénéisé les choses sur le serveur.)

J’ai aussi galéré à le faire marcher sur la CI, puisque la clé SSH que l’on utilise pour accéder au serveur est (à raison) restreinte à l’exécution de rsync uniquement. J’ai tenté d’ajouter une 2e clé pour la commande d’identification des fichiers, mais j’avais encore des erreurs, et j’ai fini par décidé d’arrêter de creuser ce trou, de dormir dessus, et d’essayer une autre approche.

Edited by Ronan Amicel

Merge request reports