Myriad Blog 1.3.0 Sunday, Nov 23rd, 2014 at 08:57pm 

Friday, Oct 29th, 2010 at 05:09pm
Kooplet, étape 69

 
Après mise au propre de certaines parties de gestion de la base de données qui pouvaient poser problème, nous avons relancé la collecte de fichiers, en vérifiant régulièrement l'intégrité des bases de données, ainsi que les rapports dans les fichiers-journaux.
 
Aucun problème sur environ 6000 fichiers, jusqu'à ce que le plantage de base se reproduise à nouveau. Nous avons pu, cette fois, grâce au compte-rendu détaillé des opérations, comprendre ce qui s'était passé :
 
Notre serveur Web est muni de protections pour éviter qu'un ou plusieurs scripts puissent partir dans des boucles infinies et saturer la machine : aucun appel à un script ne peut durer plus de 5 minutes. Au-delà de ce délai, la tâche correspondant au script est automatiquement tuée.
 
Or, un des fichiers que nous avions à traiter était un fichier ZIP, contenant plusieurs fichiers ABC, eux-même contenant chacun plusieurs centaines de morceaux.
 
Cela faisait, dans un seul fichier, plusieurs milliers de morceaux de musique à analyser, indexer, et stocker dans les bases de données. Ce processus prenait plus de 5 minutes, et le script était alors terminé abruptement, alors qu'il était en plein dans l'écriture des divers fichiers des bases de données.
 
Dans ce type de cas, il vaudrait mieux envoyer les morceaux un à un plutôt que tous d'un coup. Ainsi, chaque accès individuel ne serait que d'une fraction de secondes, aucun d'entre eux ne flirtant avec le temps limite attribué à la tâche.
 
En attendant de modifier le programme dans ce sens, nous avons mis en place dans notre script une vérification du temps passé, permettant de quitter proprement lorsqu'on dépasse 3 mn (histoire d'avoir un peu de marge). Ainsi, tous les morceaux contenus dans le ZIP ne seront pas pris en compte, mais la base devrait rester intègre.
 
Nous allons essayer de faire tourner l'indexation pendant ce week-end de trois jours, et voir si tout tient le choc.
by Olivier Guillion


Most recent first
Oldest first

Top of page
Last update:  (c) Myriad 2013