مشكلة ظهور المعاملات في مجموعات PostgreSQL متعددة المناطق المتاحة: تحليل معمق لتقرير Jepsen

يسلط تقرير حديث من Jepsen الضوء على مشكلة قائمة منذ فترة طويلة في ظهور المعاملات في مجموعات Amazon RDS لـ PostgreSQL متعددة المناطق المتاحة: يختلف ترتيب ظهور المعاملات بين الخادم الرئيسي والنسخ المتماثلة. هذا لا يؤدي إلى فقدان البيانات أو تلفها، ولا يؤثر على عمليات النشر في منطقة متاحة واحدة أو قواعد بيانات Aurora. ترتبط المشكلة بما يُعرف باسم شذوذ "الشوكة الطويلة"، والذي ينتهك عزل اللقطة. تشرح المقالة بالتفصيل السبب الجذري (التحديثات غير المتزامنة لـ ProcArray و WAL)، مع توضيح كيف يؤدي هذا إلى نتائج غير متسقة (مثل Alice و Bob يلاحظان تصنيفات مختلفة لمقال على Hacker News). على الرغم من أنه نادراً ما يؤثر ذلك على صحة التطبيق، إلا أن إصلاحه أمر بالغ الأهمية لوظائف PostgreSQL على مستوى المؤسسات. تتعاون AWS مع مجتمع PostgreSQL لحل هذه المشكلة، وتقدم حلولًا بديلة، مثل مراجعة افتراضات التطبيق حول ترتيب المعاملات واستخدام آليات المزامنة الصريحة.