datadump issueshttps://gricad-gitlab.univ-grenoble-alpes.fr/OSUG/RESIF/datadump/-/issues2019-07-17T11:44:25+02:00https://gricad-gitlab.univ-grenoble-alpes.fr/OSUG/RESIF/datadump/-/issues/1Permettre au code de reprendre après arrêt2019-07-17T11:44:25+02:00Jonathan SchaefferPermettre au code de reprendre après arrêtEn se basant sur le fichier rapport.csv, on peut récupérer l'état de chaque morceau et choisir de le renvoyer ou pas.
On peut par exemple créer l'option `continue rapport.csv` qui fera:
1. tester l'existence du fichier rapport.csv (s'i...En se basant sur le fichier rapport.csv, on peut récupérer l'état de chaque morceau et choisir de le renvoyer ou pas.
On peut par exemple créer l'option `continue rapport.csv` qui fera:
1. tester l'existence du fichier rapport.csv (s'il n'existe pas, on quitte)
2. renommer le fichier en recover_$PID.txt
3. avant de faire un tar de l'archive, chercher dans recover_$PID.txt si le transfert était OK
1. Si oui, on passe au suivant
2. Si non, on prépare le tar et on transfèreJonathan SchaefferJonathan Schaefferhttps://gricad-gitlab.univ-grenoble-alpes.fr/OSUG/RESIF/datadump/-/issues/2Paralléliser l'exécution2019-08-29T17:11:07+02:00Jonathan SchaefferParalléliser l'exécutionEn créant 3 processes:
1. Le `packer` qui a la liste des archives à préparer (à partir du find) et capable de décider des archives à préparer
2. Le `sender` qui envoie tous les fichiers prêts et écrit le rapport
3. Le `pilot` qui lance p...En créant 3 processes:
1. Le `packer` qui a la liste des archives à préparer (à partir du find) et capable de décider des archives à préparer
2. Le `sender` qui envoie tous les fichiers prêts et écrit le rapport
3. Le `pilot` qui lance packer et sender. Peut mettre en pause le packer si l'espace scratch se rempli et le relancer. Qui peut relancer le sender en cas de problèmes (réseau par exemple)
### Packer
1. Constitue la liste des archives à créer (commande find)
2. Pour chaque archive à créer:
1. Tenir compte de l'option `--continue-from rapport.csv` (chercher si l'envoi précédent a bien fonctionné)
2. Préparer l'archive $WORKDIR/$KEY.tar
3. Créer un fichier vide $WORKDIR/$KEY.ready
### Sender
1. Scrute le répertoire de travail pour tout fichier *.ready
2. Déclenche l'envoi du fichier $KEY.tar
3. Écrit le rapport et l'envoi
4. Fait le ménage
### Pilot
0. Initialise le rapport d'exécution
1. Prépare le fichier de récupération si nécessair ``continue-from``
1. Scanne la capacité du workdir et met le packer en pause lorsqu'il ne reste plus que 5Mo
2. Relance le packer s'il reste plus de 1Go d'espace libre
3. Relance le sender s'il s'est arrêté