قبل أيام قليلة تم الإعلان عنه إطلاق نظام التخزين المؤقت وتخزين البيانات في الذاكرة Dragonfly ، الذي يعالج البيانات بتنسيق المفتاح / القيمة ويمكن استخدامه كحل خفيف لتسريع المواقع عالية التحميل عن طريق تخزين الاستعلامات البطيئة مؤقتًا في نظام إدارة قواعد البيانات والبيانات الوسيطة في ذاكرة الوصول العشوائي.
اليعسوب يدعم بروتوكولات Memcached و Redis ، يسمح لك باستخدام مكتبات العملاء الحالية ومشاريع المنافذ باستخدام Memcached و Redis إلى Dragonfly دون الحاجة إلى إعادة صياغة التعليمات البرمجية الخاصة بك.
ومن الجدير بالذكر أن اليعسوب تلقيت مؤخرًا تحديثًا ، الوصول إلى نسخته 1.0 وفي أي تبرز لتنفيذ الدعم لتكرار البيانات من الخادم الأساسي إلى الخادم الثانوي.
في نفس الوقت ، اليعسوب يمكن تهيئتها لاستخدامها كمخزن ثانوي الذي يقبل البيانات من الخادم الرئيسي بناءً على Dragonfly و Redis. تتوافق واجهة برمجة تطبيقات إدارة النسخ المتماثل مع Redis وتعتمد على استخدام الأمرين ROLE و REPLICAOF (SLAVEOF).
حول اليعسوب
يتم تحقيق الأداء العالي بفضل البنية متعددة الخيوط بدون مشاركة الموارد (لا شيء مشترك) ، مما يعني أن وحدة تحكم منفصلة متصلة بكل مؤشر ترابط بقطعة بيانات خاصة بها ، والتي تعمل بدون كائنات المزامنة أو الأقفال الدورانية.
تُستخدم أقفال VLL خفيفة الوزن لضمان الذرية عند التعامل مع مفاتيح متعددة ، نظرًا لتخزين المعلومات بكفاءة في الذاكرة ، يتم استخدام بنية لوحة القيادة ، والتي تنفذ نوعًا من جداول التجزئة المقسمة.
مقارنةً بـ Redis ، تتمتع Dragonfly بتعزيز أداء بمقدار 25 ضعفًا (3,8 مليون طلب في الثانية) في ظل أحمال العمل النموذجية في بيئة Amazon EC2 c6gn.16xlarge. مقارنةً بـ Memcached في بيئة AWS c6gn.16xlarge ، تمكنت Dragonfly من إكمال 4,7 مرة أكثر من طلبات الكتابة في الثانية (3,8 مليون مقابل 806k) و 1,77 مرة طلبات قراءة أكثر في الثانية (3,7 مليون مقابل 2,1 مليون).
في اختبارات التخزين 5 جيجا بايت ، يتطلب Dragonfly ذاكرة أقل بنسبة 30٪ من Redis. أثناء إنشاء اللقطة باستخدام الأمر "bgsave" ، يزداد استهلاك الذاكرة ، ولكن في أوقات الذروة كان يتم الاحتفاظ بها أقل بثلاث مرات تقريبًا من Redis ، وتكون عملية كتابة اللقطة نفسها أسرع بكثير (في حالة Redis). لقطة مكتوبة على Dragonfly في 30 ثانية ، و Redis - في 42 ثانية).
بعض ميزات اليعسوب هي:
- وضع التخزين المؤقت الذي يستبدل البيانات القديمة تلقائيًا بالبيانات الجديدة بمجرد نفاد الذاكرة الفارغة.
- دعم دورات حياة ربط البيانات التي تعتبر البيانات محدثة خلالها.
- دعم تدفق حالة التخزين على القرص في الخلفية لاستردادها لاحقًا بعد إعادة التشغيل.
- وجود وحدة تحكم HTTP (ترتبط بمنفذ TCP 6379) لإدارة النظام وواجهة برمجة تطبيقات لإرجاع المقاييس ، متوافقة مع Prometheus.
- دعم 185 أمرًا من Redis ، أي ما يعادل تقريبًا وظائف إصدار Redis 5.
- دعم لجميع أوامر Memcached باستثناء CAS (تحقق وتكوين).
- دعم العمليات غير المتزامنة لإنشاء لقطات.
- استهلاك الذاكرة المتوقع.
- مترجم Lua متكامل 5.4.
- دعم أنواع البيانات المعقدة مثل التجزئة والمجموعات والقوائم (ZSET و HSET و LIST و SETS و STRING) وبيانات JSON.
- دعم النسخ المتماثل للتخزين لتجاوز الفشل وموازنة التحميل.
للمهتمين بكود اليعسوب يجب أن تعلم أن هذا مكتوب بلغة C / C ++ ويتم توزيعه تحت الرخصه BSL يكمن جوهر BSL في أن كود الوظيفة الموسعة متاح مبدئيًا للتعديل ، ولكن لبعض الوقت يمكن استخدامه مجانًا فقط بشرط أن يخضع لشروط إضافية ، والتي تتطلب شراء ترخيص تجاري لتجاوزه.
تتطلب شروط الترخيص الإضافية لمشروع Dragonfly أن يتم ترحيل الكود إلى ترخيص Apache 2.0 في 15 مارس 2028. حتى ذلك الحين ، يسمح الترخيص باستخدام الرمز فقط لضمان تشغيل خدماته ومنتجاته ، ولكنه يحظر استخدامه لإنشاء مدفوعات الخدمات السحابية التي تعمل كمكون إضافي لـ Dragonfly.
أخيرا إذا كنت مهتمًا بمعرفة المزيد عنها، يمكنك التحقق من التفاصيل في الرابط التالي.