Discussão sobre RDS periodicamente resulta em muitas sessões de espera Lock:relation para criar índice GIN

Periodicamente, vemos que a criação de um índice GIN em post_search_data resulta em muitos Lock:relations no “performance insight”. Encerrar a sessão que cria este índice libera todas as sessões bloqueadas. O interessante é que o índice usa "concurrently", que não deveria ser uma operação de bloqueio. Também é interessante por que ele o prefixa com 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

Também tentei reduzir o idle_in_transaction_session_timeout para 10 minutos (inicialmente estava definido para 1 dia), mas isso não fez diferença. Mais alguém teve um problema assim? Se sim, como você lidou com isso?

Nossa versão é Discourse 2.7.0 e a versão do Postgres é 13.8. O aplicativo e o banco de dados não estão no Docker, mas hospedados individualmente (ec2, rds).

Não poderei ajudá-lo com o problema específico que você está levantando, mas há algum motivo para você estar em uma versão tão antiga do Discourse? Quanto mais você esperar, maior a probabilidade de enfrentar problemas ao atualizar. Idealmente, você deve estar sempre na última versão. Além disso, as atualizações ocasionalmente incluem correções de segurança.

1 curtida

Estou gerenciando um site no ECS com RDS e não notei nenhum problema, mas é uma versão atualizada. É difícil adivinhar qual pode ser o problema sem mais detalhes da sua configuração.

Geralmente, quando alguém tem um problema com uma versão muito antiga, a primeira resposta é atualizar.

2 curtidas

Entendido. Obrigado pelo seu feedback.

1 curtida