اولین نسخه پایدار FerretDB، پیاده سازی MongoDB بر اساس PostgreSQL DBMS

انتشار پروژه FerretDB 1.0 منتشر شده است که به شما امکان می دهد بدون ایجاد تغییر در کد برنامه، DBMS MongoDB مبتنی بر سند را با PostgreSQL جایگزین کنید. FerretDB به عنوان یک سرور پراکسی پیاده سازی شده است که تماس های MongoDB را به پرس و جوهای SQL به PostgreSQL ترجمه می کند، که به شما امکان می دهد از PostgreSQL به عنوان ذخیره سازی واقعی استفاده کنید. نسخه 1.0 به عنوان اولین نسخه پایدار آماده برای استفاده عمومی مشخص شده است. کد در Go نوشته شده و تحت مجوز Apache 2.0 توزیع شده است.

مخاطب اصلی FerretDB کاربرانی هستند که از ویژگی های پیشرفته MongoDB در برنامه های خود استفاده نمی کنند، اما می خواهند از یک پشته نرم افزار کاملا باز استفاده کنند. در مرحله فعلی توسعه، FerretDB از زیرمجموعه‌ای از ویژگی‌های MongoDB که معمولاً در برنامه‌های معمولی استفاده می‌شود، پشتیبانی می‌کند. نیاز به پیاده سازی FerretDB ممکن است در ارتباط با انتقال MongoDB به یک مجوز SSPL غیر رایگان، که بر اساس مجوز AGPLv3 است، اما باز نیست، ایجاد شود، زیرا شامل یک الزام تبعیض آمیز برای عرضه تحت مجوز SSPL است نه تنها خود کد برنامه، و همچنین کدهای منبع همه اجزای درگیر در ارائه خدمات ابری.

MongoDB جایگاهی بین سیستم‌های سریع و مقیاس‌پذیر که بر روی داده‌های کلید/مقدار و DBMS‌های رابطه‌ای که عملکردی هستند و به راحتی قابل جستجو هستند، اشغال می‌کند. MongoDB از ذخیره سازی اسناد در قالب JSON مانند پشتیبانی می کند، دارای یک زبان نسبتاً انعطاف پذیر برای ایجاد پرس و جو است، می تواند شاخص هایی را برای ویژگی های ذخیره شده مختلف ایجاد کند، به طور موثر ذخیره سازی اشیاء باینری بزرگ را فراهم می کند، از ثبت عملیات برای تغییر و افزودن داده ها به پایگاه داده پشتیبانی می کند. مطابق با پارادایم Map/Reduce کار می کند، از تکرار و ساخت پیکربندی های مقاوم در برابر خطا پشتیبانی می کند.

از جمله تغییرات FerretDB 1.0:

  • دستورات createIndexes و dropIndexes را برای ایجاد و رها کردن یک یا چند نمایه به یک مجموعه اجرا کرد.
  • دستور getMore برای نمایش بخش جدیدی از نتیجه به دست آمده از اجرای دستوراتی که مکان نما را برمی گرداند، مانند find و aggregate اجرا شده است.
  • برای محاسبه مجموع مقادیر گروه، پشتیبانی از عملگر تجمیع $sum اضافه شد.
  • پشتیبانی از عملگرهای $limit و $skip برای محدود کردن تعداد و رد شدن اسناد هنگام جمع‌آوری اضافه شده است.
  • پشتیبانی از عملگر $count برای شمارش اسناد هنگام جمع آوری اضافه شد.
  • پشتیبانی از عملگر $unwind برای تجزیه فیلدهای آرایه در اسناد ورودی و تشکیل لیستی با سند جداگانه برای هر عنصر آرایه اضافه شده است.
  • پشتیبانی جزئی از دستورات collStats، dbStats و dataSize برای دریافت آمار مجموعه و پایگاه داده و اندازه داده اضافه شده است.

منبع: opennet.ru

اضافه کردن نظر