HeadlinesBriefing HeadlinesBriefing.com

إعادة كتابة SQL Readyset: خط أنابيب تدفق

Hacker News •
×

معظم قواعد البيانات تعيد تنفيذ الاستعلامات من الصفر في كل مرة، مما يجعل زمن الوصول للقراءة متناسبًا مع تعقيد الاستعلام وحجم البيانات. يتخذ Readyset نهجًا مختلفًا: فهو يجمع كل استعلام في رسم بياني لتدفق البيانات—شبكة من العوامل (الانضمامات، المرشحات، التجميعات، الإسقاطات) التي تحافظ باستمرار على نتيجة الاستعلام مع تغير البيانات. عند إدراج صف أو تحديثه أو حذفه في المنبع، ينتشر التغيير عبر الرسم البياني، ويتم تحديث النتيجة المخزنة مؤقتًا بشكل تدريجي. تصبح القراءات عمليات بحث في عرض مادي محسوب مسبقًا، وليس تنفيذات استعلام كاملة.

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

تشمل أنواع الانضمام المدعومة INNER وLEFT OUTER وCROSS؛ وRIGHT وFULL OUTER غير مدعومة بسبب صعوبة تتبع التطابقات المفقودة. تتطلب التجميعات مراجع أعمدة GROUP BY صريحة وإسقاطًا مشتقًا من التجميع واحدًا على الأقل.

المقايضة هي أنه يجب التعبير عن الاستعلامات بشكل يمكن لمحرك تدفق البيانات تجميعه—أكثر تقييدًا من SQL القياسي—ولكن العائد هو الصيانة التدريجية والقراءات الأسرع.

المصدر: Hacker News · لخّصه HeadlinesBriefing