برمجياتقراءة دقيقتين

PostHog تتراجع عن نقل مستودع بياناتها إلى DuckDB بعد نحو 5 أشهر وتنشر الأسباب

نشر فريق PostHog في 2 نوفمبر 2026 مقالًا هندسيًا بعنوان «Moving our warehouse off DuckDB»، يعلن فيه التراجع عن قرار اتخذه قبل نحو 5 أشهر بنقل مستودع البيانات، أي الـ data warehouse، إلى DuckDB. ويذكر الفريق السبب بوضوح: أنه استهان بحجم أحمال عملائه وتعقيدها.

والجزء الفني من المقال هو الأهم. فنظام الكتالوج، الذي يحفظ وصف الجداول، كان يخزّن إحصاءات الجداول كلها في مكان واحد. وكانت كل عملية commit تقرأ الكتالوج كاملًا من البداية لتحدّث تلك الإحصاءات. والنتيجة أن الكتابة على جدول واحد صارت تستغرق أكثر من 3 دقائق.

وحين فحص الفريق الصفوف نفسها، وجد أن أكثر من 99% منها يخص جداول محذوفة أصلًا. وبعد تنظيفها صارت الكتابة أسرع من 30 إلى 50 مرة. لكن الصفوف عادت تتراكم، لأن المشكلة كانت في التصميم لا في غياب التنظيف.

ومع حجم بيانات يقارب 2 بيتابايت وتريليون صف، ظهرت أعطال من أكثر من جهة، فاضطر الفريق إلى الاحتفاظ بتعديلات خاصة في نسخة معدّلة، أي fork، من المشروع. وبنى الفريق النسخة الجديدة من المستودع على محرك Trino.

ولا يخص الدرس DuckDB وحده. فالجدول الذي يكبر مع الوقت وتقرؤه كل عملية كاملًا نمط يتكرر في أي مشروع يحمل metadata. وهو يعمل دون مشكلات حتى رقم معيّن، ثم يصبح هو نفسه سبب البطء.

ومن غير المعتاد أن تكتب شركة علنًا أن قرارًا هندسيًا عمره 5 أشهر لم يصمد. وقيمة المقال لفرق البيانات أنه يضع الأرقام بجانب السبب، فيمكن مقارنتها بما يحدث في أنظمتهم قبل أن تصل إلى الحجم نفسه.

المصادر

  1. مقال PostHog الهندسي «Moving our warehouse off DuckDB»
  2. صفحة DuckLake، صيغة الجداول المستخدمة
  3. موقع مشروع DuckDB
  4. موقع محرك Trino

من عدد الثلاثاء 23 جمادى الأولى - 3 نوفمبر

أخبار ذات صلة

أخبار الثلاثاء 23 جمادى الأولى - 3 نوفمبر