Assistance technique

Problème lors de la duplication d'une ressource test

 
Avatar Patrick Lemaire
Re: Problème lors de la duplication d'une ressource test
Moodleurs particulièrement utiles

Bonjour Steeve,

Tu écris :

select count(*) from mdl_question where qtype='random' and createdby=2
Une petite recherche dans la table me montre que mon utilisateur administrateur de Moodle (dont l'Id est 2) a créé à lui seul 919684 lignes.
Pour nettoyer cette table, pensez-vous que je peux effacer ces lignes sans compromettre encore plus la cohérence de la DB?

Je pense qu'il n'est jamais bon de supprimer des éléments directement dans la base de données. En effet, d'autres objets sont probablement liés à ces questions et ils seront alors orphelins. Comme on peut le voir sur le schéma de la structure de la Base de données (http://www.examulator.com/er/), la table mdl_question est très utilisées. On peut avoir plus de précision ici : https://docs.moodle.org/dev/Question_database_structure

Database question structure

Pour résumer, je n'en ferai rien pensif

A bientôt,
Patrick

 
Moyenne des évaluations Utile (2)
Avatar Steve Ottevaere
Re: Problème lors de la duplication d'une ressource test
 

Bonjour Patrick,

 

Merci pour ton avis et pour le schéma des tables.

 

Pour info :

Avant de lire ton email, j'avais déjà pris l'initiative de nettoyer la table (en tournant 7 fois mon doigts autour de la souris) j'espère que je ne le regretterai pas...

Dans notre cas, la situation devenait assez critique et je ne pouvais pas laisser la situation dans l'état.

La table étant "polluée" de 1.254.579 enregistrements (plus d'un million de lignes).

Ce qui engendrait des lenteurs dans le traitement de requêtes sur cette table et cela avait un impact négatif sur la charge du serveur.

En plus, d'après ce que je comprends du bug, à chaque duplication les données augmentent exponentiellement, je crois que si le prof tentait de dupliquer de nouveau son "test", on passait à plusieurs dizaines de millions d'enregistrements supplémentaires, ce qui aurait encore empiré la situation (la dernière tentative de duplication avait engendré 800.000 lignes).

Depuis l'effacement des lignes, on retrouve une charge serveur tout à fait normale.

 

Pour info, j'ai utilisé la requête qui est proposée dans le rapport de bug (MDL-63260) et qui n'efface que des enregistrements qui sont orphelins. En effet, effacer sur base de ma requête simpliste de mon précédent post n'était surement pas une bonne idée.


D'autres utilisateurs touchés par ce bug ont "forké" le type de question random en y ajoutant une tâche planifié Moodle qui détecte et efface les enregistrements orphelins, voir la discussion ici : https://moodle.org/mod/forum/discuss.php?d=377361#p1521842)

 

Toutefois, je suis de ton avis, cette manipulation comporte des risques. Il est toujours préférable de la tester dans un environnement de test.

Si un utilisateur est confronté à ce problème mais n’a pas d’impact négatif sur les performances, je préconiserais de laisser en l'état en gardant cela à l’œil et en espérant qu'une procédure officielle de Moodle détecte ces enregistrements et efface les enregistrements fantômes car surcharger les tables avec un tel nombre d’enregistrements n'est pas non plus une situation idéale.


En tout cas merci pour les retours et j'espère ce cette discussion pour être utile à d'autres.

 

Steve.


 
Moyenne des évaluations Utile (1)