Dragonfly ، وهو مشروع يزعم أنه البديل الأسرع لـ Redis و Memcached

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

يتعامل النظام مع البيانات بتنسيق مفتاح / قيمة ويمكن استخدامه كحل خفيف لتسريع المواقع المحملة بكثافة ، وذاكرة التخزين المؤقت للاستعلامات البطيئة في نظام إدارة قواعد البيانات ، وذاكرة التخزين المؤقت للبيانات الوسيطة في ذاكرة الوصول العشوائي.

إن BSL تم اقتراحه من قبل مؤسسي MySQL كبديل لنموذج Open Core. يكمن جوهر BSL في أن كود الوظيفة الموسعة متاح مبدئيًا للتعديل ، ولكن لبعض الوقت يمكن استخدامه مجانًا فقط رهناً بشروط إضافية ، والتي تتطلب شراء ترخيص تجاري لتجاوزه.

تتطلب شروط الترخيص الإضافية لمشروع Dragonfly تحويل الرمز إلى ترخيص Apache 2.0 فقط في 1 يونيو 2027. وحتى ذلك الوقت ، يسمح الترخيص باستخدام الرمز فقط لضمان تشغيل خدماته ومنتجاته ، ولكن يحظر الاستخدام لإنشاء خدمات سحابية مدفوعة تعمل كإضافة إلى Dragonfly.

اليعسوب يدعي أنه أسرع نظام تخزين ذاكرة في العالم ، وفقًا للمطورين والمعايير. مقارنةً بـ Redis ، حقق Dragonfly زيادة في الأداء بمقدار 25 ضعفًا وتقليل استهلاك الذاكرة بمقدار 3 أضعاف في ظل أحمال العمل المعتادة. يمكن لخادم Dragonfly واحد معالجة ملايين الطلبات في الثانية ، على سبيل المثال ، في بيئة Amazon EC2 c6gn.16xlarge ، تم تحقيق 3,8 مليون طلب في الثانية.

في اختبارات التخزين التي تبلغ 5 جيجا بايت ، تطلبت Dragonfly ذاكرة أقل بنسبة 30٪ من Redis. أثناء إنشاء اللقطات باستخدام الأمر "bgsave" ، يزداد استهلاك الذاكرة ، ولكن في أوقات الذروة يتم الاحتفاظ بها أقل بثلاث مرات تقريبًا من Redis ، وتكون عملية كتابة اللقطة نفسها أسرع بكثير (في الاختبار ، كتبت لقطة في اليعسوب في 30 ثانية ، وريديس - في 42 ثانية).

يتم تحقيق الأداء العالي بفضل البنية متعددة الخيوط لا توجد موارد مشتركة (لا شيء مشترك) ، مما يعني أن وحدة تحكم منفصلة ومستقلة بقطعة بيانات خاصة بها متصلة بكل مؤشر ترابط ، وتعمل بدون كائنات المزامنة أو الأقفال الدورانية. تستخدم أقفال VLL خفيفة الوزن لضمان الذرية عند التعامل مع مفاتيح متعددة. لتخزين المعلومات بكفاءة في الذاكرة ، يتم استخدام بنية لوحة القيادة ، والتي تنفذ نوعًا من جداول التجزئة المقسمة.

من الوظائف المتوفرة في يسلط الإصدار الأول الضوء على دعم بروتوكول RESP2 و 130 أمرًا من Redis، والذي يتوافق تقريبًا مع وظائف إصدار Redis 2.8.

وبالإضافة إلى ذلك، يدعم Dragonfly جميع أوامر Memcached باستثناء CAS (تحقق وتعيين) ، يوفر دعمًا للعمليات غير المتزامنة لإنشاء لقطات ، ويوفر استهلاكًا للذاكرة يمكن التنبؤ به ، ويوفر مترجم Lua 5.4 مضمنًا ، ويدعم أنواع البيانات المعقدة مثل التجزئة والمجموعات والقوائم (ZSET و HSET و LIST و SETS و STRING).

بشكل منفصل ، يتوفر وضع التخزين المؤقت، حيث يتم استبدال البيانات القديمة تلقائيًا ببيانات جديدة بمجرد نفاد الذاكرة الخالية. من الممكن الربط ببيانات الحياة التي تعتبر خلالها البيانات ذات صلة.

يمكن مسح حالة التخزين على القرص في الخلفية لاستردادها لاحقًا بعد إعادة التشغيل. لإدارة النظام ، يتم توفير وحدة تحكم HTTP (ترتبط بمنفذ TCP 6379) وواجهة برمجة تطبيقات لإرجاع المقاييس المتوافقة مع Prometheus. في الإصدارات المستقبلية ، نخطط لتوسيع دعم أوامر Redis وتنفيذ القدرة على نسخ التخزين لتجاوز الفشل وموازنة التحميل.

أخيرًا ، إذا كنت مهتمًا بمعرفة المزيد عنها ، فيجب أن تعلم أن كود Dragonfly مكتوب بلغة C / C ++ ويتم توزيعه بموجب ترخيص BSL (ترخيص مصدر الأعمال).

يمكنك استشارة حول المشروع في الرابط التالي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: AB Internet Networks 2008 SL
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.