Пуск на FerretDB 0.3, реализация на MongoDB на базата на СУБД PostgreSQL

Публикувана версия 0.3 на проекта FerretDB, позволяваща да замените документно-ориентираната СУБД 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, поддържа репликация и изграждане на отказоустойчиви конфигурации.

В версия 0.3 на FerretDB е реализирана командата findAndModify, която променя документа, но връща неговата оригинална версия. Реализирани са операторите за обновяване на полета — $inc и $set. Добавена е поддръжка за сортиране на скаларни типове данни.

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

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