نلاحظ بشكل دوري أن إنشاء فهرس GIN على post_search_data يؤدي إلى الكثير من Lock:relations في performance insight. يؤدي إنهاء الجلسة التي تنشئ هذا الفهرس إلى تحرير جميع الجلسات المحظورة. المثير للاهتمام هو أن الفهرس يستخدم concurrently، والتي من المفترض ألا تكون عملية حظر. ومن المثير للاهتمام أيضًا لماذا تسبقها بـ 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
لقد حاولت أيضًا تقليل idle_in_transaction_session_timeout إلى 10 دقائق (كان مضبوطًا في البداية على 1 يوم). لكن ذلك لم يحدث أي فرق. هل واجه أي شخص آخر مثل هذه المشكلة؟ إذا كان الأمر كذلك، كيف تعاملتم مع هذا؟
إصدارنا هو Discourse 2.7.0 وإصدار Postgres هو 13.8. التطبيق وقاعدة البيانات ليسا على دوكر ولكن مستضافان بشكل فردي (ec2، rds).