# تحليل Jepsen لقاعدة ParticleDB يوثّق 96 مشكلة، أغلبها ظهر على خادم واحد ودون أعطال

> **المغزى:** المغزى: ما يحدد سلامة البيانات هو الوضع الافتراضي الذي تعمل عليه القاعدة فعلًا، لا الوعود في صفحتها الرئيسية، وإعلان الإثبات الرياضي لا يغني عن اختبار مستقل.

- المصدر: المغزى (https://almaghza.com/a/2026-11-01-jepsen-particledb-96-issues/)
- التاريخ: 21 جمادى الأولى - 1 نوفمبر 2026 (2026-11-01)
- القسم: برمجيات
- الوسوم: قواعد البيانات، اختبار البرمجيات، Formal Verification

نشر Kyle Kingsbury يوم 31 أكتوبر 2026 تحليلًا من Jepsen لقاعدة البيانات ParticleDB، التي تقدّم نفسها بأنها Full ACID ومثبتة رياضيًا. وشمل الاختبار النسخ من 1.1.4 إلى 1.1.18.11.rc-22، ووثّق 96 مشكلة.

والأهم من العدد ظروف ظهورها. فأغلب هذه المشكلات احتاج إلى خادم واحد وclient واحد، دون أي أعطال مصطنعة. أي أنها لم تأتِ من انقطاع شبكة أو تفكك cluster، بل من تشغيل عادي. والبُنى المختبرة لم تكن تدعم التنسيخ، فالتقرير يصف سلوك العقدة الواحدة فقط.

ومن الأمثلة التي يذكرها قسم المناقشة: شرط WHERE 4 = 5 أعاد صفوفًا، وشرط WHERE a = 1 طابق صفًا قيمته 2، وشرط WHERE TRUE لم يُعِد شيئًا، والقيمة 0.0 لم تكن تساوي 0. وعادت صفوف من جداول محذوفة بأشكال مشوهة، ولم تعمل قيود null وunique، فتكررت المفاتيح الأساسية أو صارت null.

وعن الإثبات الرياضي، كانت الصفحة الرئيسية للقاعدة تعلن أنها مثبتة بـ TLA+، وهي لغة لوصف الأنظمة والتحقق منها رياضيًا. ويقول التقرير إن أي مواصفة TLA+ لم تكن متاحة طوال فترة التعاون.

وبحلول آخر نسخة مختبرة، حُلّت المشكلات كلها عدا عشر. وأهم ما بقي اثنتان: فقدان كتابات تم لها commit في الوضع الافتراضي occ، وظاهرة Lost Update في وضع serializable، أي أن يضيع أحد تحديثين متزامنين على القيمة نفسها.

ولهذا معنى عملي لكل فريق يختار قاعدة بيانات. فالوضع الذي يعمل عليه التطبيق فعلًا هو الوضع الافتراضي، لا الوضع الأقوى المذكور في التوثيق. ومستوى الـ isolation المضبوط افتراضيًا هو ما يحدد ما يحدث للبيانات حين يتزامن طلبان.

ويفصح التقرير بأن التحليل مموّل من Orkes، صانعة ParticleDB، ويقول إنه أُجري وفق سياسة الأخلاقيات في Jepsen. وأصدرت الشركة النسخة 1.1.19-rc.13، وتقول إنها حلّت كل ما تبقى.

## المصادر

- [تحليل Jepsen الكامل لـ ParticleDB 1.1.4](https://jepsen.io/analyses/particledb-1.1.4)
