Lansarea FerretDB 0.3, o implementare a MongoDB bazată pe DBMS PostgreSQL

Опубликован выпуск проекта FerretDB 0.3, позволяющего заменить документо-ориентированную СУБД MongoDB на PostgreSQL без внесения изменений в код приложений. FerretDB реализован как прокси-сервер, транслирующий обращения к MongoDB в SQL-запросы к PostgreSQL, что позволяет использовать PostgreSQL в качестве фактического хранилища. Код написан на языке Go и распространяется под лицензией Apache 2.0.

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

Основной целевой аудиторией FerretDB являются пользователи, которые не применяют в своих приложениях расширенные возможности MongoDB, но желают использовать полностью открытый программный стек. На текущем этапе развития FerretDB пока поддерживает лишь часть возможностей MongoDB, наиболее часто применяемых в типовых приложениях. В будущем планируют достигнуть полной совместимости с драйверами для MongoDB и предоставить возможность использовать FerretDB в качестве прозрачной замены MongoDB.

MongoDB ocupă o nișă între sistemele rapide și scalabile care operează pe date în format cheie/valoare și SGBD-uri relaționale care sunt funcționale și ușor de formulat interogări. MongoDB acceptă stocarea documentelor într-un format asemănător JSON, are un limbaj destul de flexibil pentru generarea de interogări, poate crea indecși pentru diverse atribute stocate, oferă în mod eficient stocarea de obiecte binare mari, acceptă înregistrarea operațiunilor pentru modificarea și adăugarea datelor în baza de date, poate lucrează în conformitate cu paradigma Map/Reduce, acceptă replicarea și construirea de configurații tolerante la erori.

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

Sursa: opennet.ru

Adauga un comentariu