Выпуск FerretDB 0.7, реализации MongoDB на базе СУБД PostgreSQ

Опубликован выпуск проекта 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.



Источник: http://www.opennet.ru/opennews/art.shtml? num=58267

© OpenNet