FerretDB 0.3 уже выпущен, узнайте, что нового в этой модернизации MangoDB

Несколько недель назад мы делимся здесь в блоге новостями о изменение названия проекта MangoDB который позволяет вам заменить документно-ориентированную СУБД MongoDB на PostgreSQL без внесения каких-либо изменений в код вашего приложения.

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

Для тех, кто еще не знаком с FerretDB, следует знать, что это реализовано в виде прокси-сервера, который переводит обращения к MongoDB в SQL-запросы к PostgreSQL, что позволяет использовать PostgreSQL как реальное хранилище.

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

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

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

MongoDB занимает нишу между быстрыми и масштабируемыми системами, работающими с данными типа «ключ-значение», и реляционными СУБД, которые функциональны и просты в обработке запросов.

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

Из-за различий в семантике json-функций PostgreSQL и MongoDB, было несоответствие в поведении при сравнении и заказе разных типов. Для решения этой проблемы теперь из PostgreSQL извлекается выборка избыточных данных и выполняется фильтрация результата на стороне FerretDB, что позволило повторить поведение MongoDB в большинстве ситуаций.

Основные новинки FerretDB 0.3

Как упоминалось в начале, новая версия FerretDB 0.3 отличается введением команда findAndModify, который изменяет документ, но возвращает его исходную версию.

Другие изменения, которые выделяются, заключаются в том, что улучшена обработка отрицательных нулей, а также добавлена ​​поддержка упорядочивания скалярных типов данных.

Также выделены реализованы новые операторы обновления полей: $inc и $set, плюс добавлена ​​поддержка упорядочения скалярных типов данных.

С другой стороны, упоминаются различные улучшения для обработки версий PostgreSQL и MongoDB.

Кроме того, также отмечено, что исправлен некорректный тест для оператора $mod, также то, что тест проводится во всех операционных системах ARM64, и что добавлено больше информации об уровнях регистрации ошибок маршрутизатора/прокси-сервера.

Из других изменений которые выделяются из этой новой версии:

  • Обновить ВЛАДЕЛЬЦЕВ КОДА
  • Синхронизируйте фиктивные контроллеры и pg
  • Переименуйте константы OP_* в OpCode*constants.
  • Улучшить gopkg.in/yaml.v3
  • Поднимите gopkg.in/yaml.v3 в инструментах
  • Сделать путь к типу
  • Паника в неожиданных значениях заказа
  • Добавьте комментарии к функциям и переменным.
  • Удалить мертвый код

В конце концов если вам интересно узнать об этом больше, вы можете проверить подробности По следующей ссылке.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.