NS5 : L’alerte de désynchronisation de l’horloge cliente

En tant que développeur, nous sommes parfois confrontés à de « drôles de bugs », pas vraiment critiques mais difficilement explicables, souvent induits par la complexité d’un système qui doit gérer des systèmes hétérogènes et de très multiples cas de figure. Voici l’histoire un peu longue d’un problème bénin qui fut une sorte de « fil rouge » pendant les derniers mois, jusqu’à que l’on puisse enfin récemment mettre le doigt sur sa cause.

Chez plusieurs clients, la ligne suivante réapparaissait à plusieurs reprises dans le journal des défaillances système, de manière assez aléatoire et uniquement sur certaines sauvegardes :

Backup write error for backup #XXX : cannot delete file #YYYYY created inside the same transaction.

Continuer la lecture de NS5 : L’alerte de désynchronisation de l’horloge cliente

NS5 : Optimisations et nouveautés des rapports d’exécution

Deux nouveautés importantes relatives aux rapports d’exécution sont incluses dans la nouvelle version 5 d’UltraBackup NetStation.

La première nouveauté concerne diverses optimisations qui permettent une génération et un chargement bien plus rapide des rapports par rapport aux versions antérieures. Jusqu’ici, nous utilisions comme format intermédiaire un document XML, stocké dans la base de données, qui contenait les divers éléments à mettre en forme dans les rapports affichés dans la console d’administration ou le gestionnaire de sauvegarde. De fait, le format XML est relativement verbeux et l’espace occupé en base de données pour de « grosses » sauvegarde était souvent assez démesuré… Par ailleurs, le parseur Microsoft MSXML n’est pas non plus un foudre de guerre, surtout dans le cas de documents volumineux, et les temps de génération pouvaient parfois être excessivement longs pour des sauvegardes contenant de nombreux fichiers modifiés.

La version 5 utilise désormais le format JSON, beaucoup plus compact, associé à un parseur natif bien plus rapide que celui de Microsoft. Les temps d’accès aux rapports sont donc drastiquement améliorés par rapport à la version 4 ! Pour des raisons de compatibilité la génération au format JSON est activée uniquement pour les agents clients en version 5 et les deux formats internes cohabitent de manière transparente pour les utilisateurs.

La seconde nouveauté est la possibilité de stocker les rapports de sauvegarde en dehors de la base de données. Par défaut, ceux-ci sont insérés dans une table contenant le résumé de toutes les exécutions. Lorsque de nombreuses sauvegardes contenant un nombre important de fichiers modifiés s’exécutent, des rapports de plusieurs kilo-octets (voire méga-octets, lorsque plusieurs centaines de milliers de fichiers sont régulièrement modifiés) sont générés et stockés dans le fichier de base de données.  Dans ce cas, il peut être pratique de déporter ce stockage dans un répertoire sur le disque serveur, pour éviter d’alourdir inutilement la base. Cette option peut être configurée dans la vue « Rapports de sauvegarde » des options serveur :

Configuration du stockage externe des rapports de sauvegarde