Sauvegarde des données graphe (Log shipping) ############################################ La sauvegarde des données graphe des métadonnées (UNIT/GOT) consiste à récupérer au fil de l'eau depuis la base de données (MongoDB) les données graphe par (UNIT/GOT) et les stocker dans l'offre de stockage. .. note:: Log shipping .. caution:: En cas de problème de sauvegarde des données graphe, on écrit dans le fichier log une [Consistency Error] qu'on pourra surveiller. .. caution:: Si l'instance qui démarre le service de sauvegarde s'arrête, il faut lancer ce service de sauvegade dans une autre instance. .. TODO A vérifier Déclenchement ============= La sauvegarde des données graphe est lancée via un timer systemd ( :ref:`systemd_timer_mtd_graph` ) qui démarre un service systemd concerné. * Le timer se lance chaque 30 minutes (modifiable selon le besoin) * Le sauvegarde des données graphe se fait sur une intervalle de temps (Depuis la dernière sauvegarde jusqu'à temps présent) * Le fichier généré est un fichier ZIP qui contient un ou plusieurs fichiers JSON. Ces fichiers JSON contiennent un tableau de données graphe. * Le nom du fichier de la dernière sauvegarde contient les dates début et fin de sauvegarde. Ce nom est utilisé pour déterminer la dernière date de sauvegarde. * La sauvegarde des UNIT est séparée de celle des GOT (Deux container en plus dans l'offre de stockage) Reconstruction des données graphe : ------------------------------------ La reconstruction des données graphe se fait avec le même principe que la reconstruction des méta-données (UNIT/GOT) : * Gérer l'offset de reconstruction des fichiers de sauvegarde des données graphe. * Mettre à jour uniquement les données graphe. Si un document n'est pas trouvé, une création de ce document est faite et ne contiendra que les données du graphe. * De même, la reconstruction des métadonnées ne modifie pas les données graphe potentiellement déjà existantes. * Une purge est faite de tous les documents ayant uniquement les données graphe et qui sont vieux de (1 mois Configurable) * Les documents ayant uniquement les données graphe ne sont pas indexés dans ElasticSearch. * La reconstruction est séquentielle (D'abord les métadonnées UNIT/GOT ensuite leur graphe) .. seealso:: La :ref:`reconstruction` des métadonnées pour avoir plus d'inforamtion sur la reconstruction.