Discourse sur RDS provoque périodiquement de nombreuses attentes Lock:relation pour les sessions de création d'index GIN

Nous constatons périodiquement qu’une création d’index GIN sur post_search_data entraîne de nombreux Lock:relations sur l’aperçu des performances. La suppression de la session créant cet index libère toutes les sessions bloquées. Ce qui est intéressant, c’est que l’index utilise concurrently, qui n’est pas censé être une opération bloquante. Il est également intéressant de savoir pourquoi il le préfixe avec temp.

CREATE INDEX CONCURRENTLY temp_idx_recent_regular_post_search_data  ON post_search_data USING GIN(search_data) WHERE NOT private_message AND post_id >= 12431619

J’ai également essayé de réduire idle_in_transaction_session_timeout à 10 minutes (initialement réglé sur 1 jour), mais cela n’a fait aucune différence. Quelqu’un d’autre a-t-il rencontré un problème similaire ? Si oui, comment l’avez-vous géré ?

Notre version est Discourse 2.7.0 et la version de Postgres est 13.8. L’application et la base de données ne sont pas sur Docker mais hébergées individuellement (ec2, rds).

Je ne pourrai pas vous aider avec le problème spécifique que vous soulevez, mais y a-t-il une raison pour laquelle vous utilisez une version de Discourse aussi ancienne ? Plus vous attendez, plus vous risquez de rencontrer des problèmes lors de la mise à niveau. Idéalement, vous devriez toujours être sur la dernière version. De plus, les mises à jour incluent parfois des correctifs de sécurité.

1 « J'aime »

Je gère un site sur ecs avec rds et je n’ai remarqué aucun problème, mais il s’agit d’une version à jour. Il est difficile de deviner quel pourrait être le problème sans plus de détails sur votre configuration.

En général, lorsqu’une personne a un problème avec une version très ancienne, la première réponse est de mettre à niveau.

2 « J'aime »

Soit. Merci pour vos commentaires.

1 « J'aime »