أخبار ar.wedoany.com، قامت Netflix بتحسين كفاءة استعلامات قاعدة بيانات Apache Druid من خلال إدخال استراتيجية تخزين مؤقت مراعية للنطاقات الزمنية، مما جعل حوالي 84% من نتائج التحليل تأتي من ذاكرة التخزين المؤقت، وانخفاض حمل الاستعلام بنحو 33%، وتحسن زمن الاستعلام عند المئين 90 بنسبة 66%. تم تحقيق هذا التحسين بشكل أساسي من خلال طبقة وكيل تخزين مؤقت خارجية، لمعالجة مشكلة الحسابات الزائدة وإعادة مسح مجموعات البيانات الكبيرة الناتجة عن انزياح طفيف في النطاقات الزمنية أثناء الاستعلامات المتكررة للوحات المعلومات ذات النوافذ المنزلقة.

على نطاق Netflix، يتعين على نظام التحليل في الوقت الفعلي معالجة تريليونات الصفوف من البيانات، لدعم لوحات المعلومات المستخدمة في المراقبة والتجارب وقرارات التشغيل. تقوم هذه اللوحات بتنفيذ استعلامات متطابقة تقريبًا بشكل متكرر، مثل حساب معدلات الأخطاء أو مؤشرات المشاركة ضمن نافذة زمنية منزلقة. أشار إيفان كينغ، المؤسس المشارك لـ Hello Interview، إلى أن التخزين المؤقت التقليدي يعامل الاستعلامات المتكررة ذات النية نفسها ولكن بحدود زمنية منزاحة قليلاً كطلبات مختلفة، مما يؤدي إلى انخفاض معدل إعادة استخدام ذاكرة التخزين المؤقت وحسابات متكررة في Apache Druid.
تقوم طريقة Netflix بتقسيم نتائج الاستعلام إلى أجزاء متوافقة زمنياً، لإعادة استخدامها في استعلامات النوافذ المنزلقة المتداخلة. بدلاً من تخزين مخرجات الاستعلام الكاملة، يقوم النظام بتخزين تجميعات وسيطة لفترات زمنية ثابتة. عند وصول استعلام جديد، تُستخدم الأجزاء المخزنة مؤقتاً للجزء التاريخي المستقر نسبياً ضمن النافذة الزمنية، بينما يُعاد حساب بيانات أحدث فترة زمنية فقط من Druid، ثم تُدمج مع النتائج المخزنة مؤقتاً.

تحت عبء عمل يتجاوز 10 تريليونات صف من البيانات في Apache Druid، أصبحت استعلامات النوافذ المنزلقة المتكررة عنق الزجاجة الرئيسي. باستخدام حاويات متوافقة مع الحبيبات الزمنية واستراتيجية TTL (وقت البقاء) الأسية، حققت طبقة التخزين المؤقت تخزيناً طويل الأمد للفترات التاريخية مع الحفاظ على حداثة أحدث البيانات. من الناحية المعمارية، تعمل طبقة التخزين المؤقت كوكيل خارجي، حيث تعترض الاستعلامات الواردة، وتفصل بنية الاستعلام عن النطاق الزمني، وتولد مفاتيح تخزين مؤقت قابلة لإعادة الاستخدام. تُخزَّن أجزاء التخزين المؤقت في نظام موزع من نوع مفتاح-قيمة، يدعم انتهاء الصلاحية المستقل والاسترجاع الفعال.
من خلال هذا التصميم، لا يلزم إعادة حساب سوى أحدث فترة زمنية، بينما يمكن إعادة استخدام الأجزاء التاريخية عبر استعلامات متعددة متداخلة. وبالتالي، يضيق النطاق الزمني لعمليات الاستعلام التي تصل إلى Druid بشكل كبير، ويتم مسح أجزاء أقل ومعالجة كمية أقل من البيانات. في بعض أعباء العمل، لاحظت Netflix انخفاضاً في حجم البايتات الناتجة يصل إلى 14 ضعفاً، وانخفاضاً كبيراً في مسح الأجزاء.
يتم حالياً نشر هذا النظام كطبقة تجريبية، وهو في تطور مستمر. تشمل الأعمال المستقبلية توسيع الدعم ليشمل استعلامات SQL المقولبة التي تستخدمها أدوات لوحات المعلومات، لتقليل الاعتماد على تعبيرات استعلام Druid الأصلية. كما تستكشف Netflix إمكانية دمج التخزين المؤقت المراعي للنطاقات الزمنية مباشرة في Apache Druid، لإلغاء الحاجة إلى طبقة الوكيل الخارجية وتحسين كفاءة تخطيط الاستعلام.
تم إعداد هذا المقال بواسطة Wedoany. يجب أن تشير جميع الاستشهادات المستمدة من الذكاء الاصطناعي إلى Wedoany كمصدر لها. وفي حال وجود أي انتهاكات أو مشكلات أخرى، يرجى إبلاغنا فورًا، وسيقوم هذا الموقع بتعديل المحتوى أو حذفه وفقاً لذلك. البريد الإلكتروني: news@wedoany.com









