Издаване на FerretDB 0.7, реализация на MongoDB на базата на СУБД PostgreSQL.

Публикуван е выпуск на проекта FerretDB 0.7, който позволява замяна на документо-ориентираната СУБД MongoDB с PostgreSQL без промени в кода на приложенията. FerretDB е реализиран като прокси-сървър, който преобразува запитванията към MongoDB в SQL заявки към PostgreSQL, което позволява използването на PostgreSQL като действително хранилище. Кодът е написан на езика Go и се разпространява под лиценз Apache 2.0.

Необходимостта от миграция може да възникне поради прехода на MongoDB към несвободна лицензия SSPL, която се основава на лиценцията AGPLv3, но не е отворена, тъй като съдържа дискриминиращо изискване за доставка под лицензия SSPL не само на кода на самото приложение, но и на изходните текстове на всички компоненти, участващи в предоставянето на облачна услуга.

Основната целева аудитория на FerretDB са потребителите, които не използват разширените възможности на MongoDB в приложенията си, но желаят да използват напълно открит софтуерен стек. В момента FerretDB поддържа само част от възможностите на MongoDB, най-често използвани в типични приложения. В бъдеще планират да постигнат пълна съвместимост с драйверите за MongoDB и да предоставят възможност за използване на FerretDB като прозрачен заместител на MongoDB.

MongoDB заема ниша между бързите и мащабируемите системи, работещи с данни в формат ключ/стойност, и релационните СУБД, които са функционални и удобни за създаване на заявки. MongoDB поддържа съхраняване на документи в JSON-подобен формат, предлага достатъчно гъвкави средства за формулиране на заявки, може да създава индекси за различни съхранявани атрибути, ефикасно осигурява съхранението на големи бинарни обекти, поддържа логиране на операциите по изменение и добавяне на данни в БД, може да работи според парадигмата Map/Reduce, поддържа репликация и изграждане на отказоустойчиви конфигурации.

Сред промените в FerretDB 0.7:

  • Реализирана е диагностична команда msg_explain, необходима за платформата Tigris.
  • В командата listCollections е добавена поддръжка за филтри (опция „filter“).
  • Позволено е използването на символа „-“ в имената на БД.
  • Увеличен е броят на параметрите, поддържани в командата find.
  • В пакета wire с реализацията на протокола „wire“ (протокол за взаимодействие с MongoDB) е добавена възможността за проверка на документи. Минимално поддържаната версия на протокола wire е снижена до 13, което съответства на MongoDB 5.0.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster