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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.