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

PlanetScale تعلن Neki: قاعدة Postgres مقسمة على عدة خوادم يراها التطبيق قاعدة واحدة

المغزى

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

أعلنت PlanetScale في 10 سبتمبر 2026 عن Neki، وهي نسخة sharded من Postgres، أي قاعدة بيانات مقسمة على عدة خوادم، وكل shard فيها يعمل بـ Postgres حقيقي لا بنسخة تحاكيه. والخدمة متاحة حاليًا في مرحلة platform preview.

والمشكلة التي تعالجها يعرفها كل فريق بلغت قاعدة بياناته سقف الخادم الواحد: جداول تكبر حتى يصبح الـ vacuum والفهرسة عبئًا، ونسخ احتياطي يستغرق ساعات، واتصالات تنفد، وأي تعديل على الـ schema يحتاج نافذة صيانة.

والحل التقليدي أن يقسم الفريق البيانات بنفسه داخل كود التطبيق. أي أن كل query يجب أن يعرف وجهته، وكل join يمتد بين أكثر من shard يُكتب يدويًا.

وتنقل Neki هذا العمل إلى طبقة من الـ routers، تقرأ الـ query وترسله إلى الـ shard المناسب. والأهم أن هذه الطبقة تتحدث الـ Postgres wire protocol نفسه، فيرى التطبيق قاعدة Postgres عادية دون أن يحتاج إلى تغيير.

وتتكون المعمارية من أربعة مكونات: الـ routers، والـ shards التي يحتوي كل منها على primary ونسختين replica على الأقل في availability zones مختلفة، وconnection pooling sidecars، وcontrol plane يتابع صحة النظام ويدير الـ failover. أما خريطة توزيع الجداول على الـ shards فمكتوبة في ملف JSON.

وتنبه PlanetScale نفسها إلى أن الخدمة ليست جاهزة بعد لأحمال production.

ولـ PlanetScale سابقة في الفكرة نفسها على MySQL عبر Vitess. وفي عالم Postgres يوجد Citus بديلًا مفتوح المصدر، بينما يبقى الـ partitioning داخل Postgres الخطوة الأولى قبل التفكير في التقسيم على عدة خوادم.

والتحول الأهم في الخبر أن التقسيم صار شيئًا يُشترى بدل أن يُبنى. وهذا قد يرفع السقف الذي يستطيع فريق من خمسة أشخاص أن يصل إليه قبل أن يحتاج إلى متخصص في قواعد البيانات، وإن كانت التجربة الفعلية في production لم تبدأ بعد.

المصادر

  1. إعلان PlanetScale عن Neki
  2. توثيق Vitess
  3. Citus، بديل مفتوح المصدر لتقسيم Postgres
  4. توثيق partitioning في Postgres

من عدد الجمعة 29 ربيع الأول - 11 سبتمبر

أخبار ذات صلة

أخبار الجمعة 29 ربيع الأول - 11 سبتمبر