
كيف تتوسع قاعدة بيانات D1 من Cloudflare إلى ملايين القواعد
تجاوزت قاعدة بيانات SQLite اللاخادمية D1 من Cloudflare 5.5 مليون قاعدة بيانات. يصف منشور جديد بنية مستوى التحكم الذي يمكّن التوسع: من Durable Objects إلى توجيه Workers KV ونبضات القلب ذاتية التصحيح.
ارتفاع تكلفة التطبيقات المنشأة بمساعدة الذكاء الاصطناعي
تجاوزت D1 من Cloudflare، وهي قاعدة بيانات لا خادمية مُدارة مبنية على SQLite، 5.5 مليون قاعدة بيانات: بحلول 8 أكتوبر 2026، ازداد عدد القواعد الحية غير القابلة للحذف 15 مرة خلال عام واحد، و65 مرة خلال عامين. ارتفع عدد القواعد النشطة يومياً 18 مرة في الفترة نفسها. تربط الشركة هذه القفزة بالتطوير بمساعدة الذكاء الاصطناعي ومنصات البرمجة الإحساسية (vibe coding)، التي تدفع التطبيقات نحو قواعد صغيرة متعددة: لكل مستخدم، أو تطبيق، أو بيئة معاينة، أو مستأجر. تُعد ChatGPT Sites من OpenAI بين تلك المنصات المبنية على D1. وفقاً لجون أبرامز من ChatGPT Sites، يمنح D1 المستخدمين "طريقاً بسيطاً وقابلاً للتوسع" لإضافة وظائف مثل المقاييس المُنظمة ولوحات المتصدرين والتعليقات إلى صفحاتهم وألعابهم وأدواتهم.
البنية المعمارية: Durable Objects وWorkers KV وHyperdrive
تعتمد كل قاعدة بيانات D1 على Durable Object واحد يعمل بـ SQLite، مما يتيح إنشائها بالملايين. تدخل طلبات API عبر D1 Edge API Worker، بينما يعيد Eyeball Worker توجيه كامل حركة المرور إلى Durable Objects الكامنة تحتها، ويضمن المراقبة وإعادة المحاولات التلقائية ومعالجة الأخطاء. يعمل Workers KV كطبقة تخزين مؤقت عند الحافة للميتاداتا الخاصة بالتوجيه الثقيل على القراءة، بينما يقدم Hyperdrive تجميع الاتصالات والتخزين المؤقت والتوجيه المُحسّن مع مجموعة Postgres المركزية في مراكز بيانات Cloudflare الأساسية. يقسم الفريق العمليات إلى ثلاثة أجزاء: مستوى البيانات (data plane) للاستعلامات، ومستوى التحكم (control plane) لعمليات API، ومستوى خلفي غير متزامن للتحليلات والفوترة.
الإنشاء السريع ونبضات القلب ذاتية التصحيح
عند إنشاء قاعدة البيانات يتم التحقق من حدود الحساب، وتوليد UUID فريد للقاعدة ومعرّف Durable Object، ثم تهيئة Durable Object وتخزين الميتاداتا في Postgres وكتابة السجل الرابط للمعرّفات في Workers KV. تعمل الكتابة في Postgres كنقطة تحكم للإنشاء، بينما تحدث التحديثات النهائية في KV داخل استدعاء waitUntil() الذي يحق له التعليق. كل 30 ثانية، وباهتزاز فردي لكل قاعدة، يرسل كل Durable Object نبضة heartbeat إلى مستوى التحكم لمعرفة ما إذا كانت في الحالة النشطة أو المحذوفة. يتيح هذا الأمر لـ Durable Objects تعليم نفسها كمحذوفة ويضمن أن يعكس Workers KV الواقع في النهاية؛ وعند نقطة تسلسل الكتابة في KV، يقف Durable Object حارساً.
نقل الاستعلامات بعيداً عن القاعدة المركزية
طلبات الاستعلامات المرسلة عبر HTTP تتجنب Postgres بالكامل. يحمّل Edge API Worker السجل الرابط للقاعدة من Workers KV ولا يلجأ إلى Hyperdrive ونسخ Postgres إلا في حالات تجاوز التخزين المؤقت النادرة، ثم يمرر الاستعلام عبر Eyeball Worker إلى Durable Object. تحمل روابط Worker ترخيصاً مشفراً، لذلك تتجنب الطلبات القادمة من Workers المستخدمين البحث عن السجل الرابط نهائياً. تمر تحديثات الاستهلاك عبر طابور شبيه بـ Kafka لتجميع الكتابات في Postgres، بينما تحسب صيانة العرض التزايدي مجاميع كل حساب مسبقاً في جدول account_database_stats، حتى يجري فحص الحدود في زمن ثابت حتى بالنسبة للحسابات المليونية.
المصادر: Cloudflare
SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي
نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.