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).