تم تحديث MangoDB ويتغير الآن إلى FerretDB

مؤخراتم الإعلان عن نبأ إطلاق المشروع FerretDB ، (MangoDB سابقًا) ، والذي يسمح لك باستبدال نظام إدارة قواعد البيانات (DBMS) المستند إلى المستندات في MongoDB بـ PostgreSQL دون إجراء أي تغييرات على رمز التطبيق الخاص بك.

يتم تنفيذ FerretDB كخادم وكيل يقوم بترجمة المكالمات إلى MongoDB إلى استعلامات SQL إلى PostgreSQL ، مما يسمح لك باستخدام PostgreSQL كتخزين فعلي.

تم تأسيس FerretDB (المعروف سابقًا باسم MangoDB) ليصبح البديل الفعلي للمصدر المفتوح لـ MongoDB. FerretDB هو وكيل مفتوح المصدر يحول استعلامات بروتوكول MongoDB السلكية إلى SQL ، باستخدام PostgreSQL كمحرك قاعدة البيانات.

قد تنشأ الحاجة إلى الترحيل بسبب انتقال MongoDB إلى ترخيص SSPL غير مجاني ، والذي يعتمد على ترخيص AGPLv3 ، ولكنه ليس مفتوح المصدر ، لأنه يحتوي على متطلب تمييزي لتقديمه بموجب ترخيص SSPL ليس فقط التطبيق من الكود نفسه ، ولكن أيضًا رموز المصدر لجميع المكونات المشاركة في توفير الخدمة السحابية.

الجمهور المستهدف لـ FerretDB هم المستخدمون الذين لا يستخدمون الميزات المتقدمة لـ MongoDB في تطبيقاتهم ، ولكنهم يريدون استخدام حزمة برامج مفتوحة بالكامل.

في المرحلة الحالية من التطور ، FerretDB لا يزال يدعم جزءًا فقط من ميزات MongoDB التي يتم استخدامها غالبًا في التطبيقات النموذجية. في المستقبل ، يخططون لتحقيق دعم السائق الكامل لـ MongoDB وتوفير القدرة على استخدام FerretDB كبديل شفاف لـ MongoDB.

يجب أن نتذكر ذلك يحتل MongoDB مكانة بين الأنظمة السريعة والقابلة للتطوير التي تعمل على البيانات في تنسيق مفتاح / قيمة ، و DBMS العلائقية ، وظيفية ومريحة في توليد الاستعلامات.

لا يحتاج معظم مستخدمي MongoDB إلى العديد من الميزات المتقدمة التي يقدمها MongoDB ؛ ومع ذلك ، فهم بحاجة إلى حل قاعدة بيانات مفتوحة المصدر سهل الاستخدام. وإدراكًا لذلك ، فإن FerretDB هنا لملء هذه الفجوة.

MongoDB يدعم تخزين المستندات بتنسيق يشبه JSON، لديه لغة مرنة إلى حد ما لتوليد الاستعلامات ، يمكنه إنشاء فهارس للعديد من السمات المخزنة ، ويوفر تخزينًا ثنائيًا فعالًا للكائنات الكبيرة ، دعم تسجيل العمليات لتغيير وإضافة البيانات لقاعدة البيانات ، يمكن أن تعمل وفقًا لنموذج Map / Reduce ، فهي تدعم النسخ المتماثل وبناء التكوينات المتسامحة مع الخطأ.

في إصدار FerretDB 0.1.0 لوحظ أن إعادة تصميم طريقة استرداد بيانات PostgreSQL بالكامل. في السابق ، لكل طلب MongoDB وارد ، تم إنشاء استعلام SQL إلى PostgreSQL ، باستخدام وظائف للعمل مع تنسيق JSON وتصفية النتائج على جانب PostgreSQL.

بسبب الاختلافات في دلالات وظائف PostgreSQL و MongoDB json ، كان هناك تناقض في السلوك عند مقارنة أنواع مختلفة وترتيبها. لحل هذه المشكلة ، يتم الآن استخراج عينة من البيانات الزائدة عن الحاجة من PostgreSQL ويتم تصفية النتيجة على جانب FerretDB ، مما يجعل من الممكن تكرار سلوك MongoDB في معظم المواقف.

كان ثمن التوافق المتزايد عقوبة أداء ، والتي من المتوقع أن يتم تعويضها في الإصدارات المستقبلية عن طريق التصفية الانتقائية على جانب FerretDB للاستعلامات فقط التي يوجد بها اختلاف سلوكي.

على سبيل المثال ، يمكن معالجة الاستعلام "db.collection.find ({_ id: 'some-id-value'})" بالكامل في PostgreSQL. الهدف الرئيسي للمشروع في هذه المرحلة من التطوير هو تحقيق التوافق مع MongoDB ، ولا يزال الأداء محصورًا في الخلفية.

من بين التغييرات الوظيفية في الإصدار الجديد ، هناك دعم لجميع مشغلي البتات ، وعامل المقارنة "$ e" ، بالإضافة إلى مشغلي "$ elemMatch" و "$ bitsAllClear".

أخيرا للراغبين في معرفة المزيد عنها، يجب أن يعلموا أن الكود مكتوب في Go ويتم توزيعه بموجب ترخيص Apache 2.0 و يمكنك التحقق من الكود الخاص به في الرابط التالي.


اترك تعليقك

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

*

*

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