Vediamo periodicamente che la creazione di un indice GIN su post_search_data provoca molti Lock:relations su performance insight. L’eliminazione della sessione che crea questo indice rilascia tutte le sessioni bloccate. Ciò che è interessante è che l’indice utilizza “concurrently”, che non dovrebbe essere un’operazione di blocco. È anche interessante perché lo prefissa con 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
Ho anche provato a ridurre idle_in_transaction_session_timeout a 10 minuti (inizialmente era impostato a 1 giorno), ma non ha fatto alcuna differenza. Qualcun altro ha riscontrato un problema simile? Se sì, come lo avete gestito?
La nostra versione è Discourse 2.7.0 e la versione di Postgres è 13.8. L’app e il database non sono su docker ma ospitati individualmente (ec2, rds).