Разделы

ПО Свободное ПО Софт Бизнес Кадры Телеком Инфраструктура Контент Интернет Интернет-ПО Интернет-доступ Ритейл Интернет ИТ в торговле

Microsoft открывает исходный код своей мощной СУБД DocumentDB

Microsoft объявила об открытии исходного кода своего внутреннего проекта DocumentDB. Данное ИТ-решение можно использовать как отдельную систему управления базами данных NoSQL. Исходный код проекта DocumentDB написан на языке C и опубликован на GitHub под лицензией Массачусетского технологического института. Движок проекта реализован в форме надстройки над СУБД PostgreSQL. Проект поддерживает формат BSON и операции CRUD.

Открытие исходного кода

Компания Microsoft открыла исходный код своего проекта DocumentDB, предлагая его как NoSQL систему управления базами данных (СУБД) или ИТ-платформу для ИТ-систем хранения, пишет сайт разработчика. DocumentDB можно использовать как самостоятельную базу данных (БД) или в связке с PostgreSQL.

Представители Microsoft объявили об открытии кода проекта DocumentDB, который может использоваться как отдельная NoSQL СУБД, как ИТ-платформа для создания собственных ИТ-систем хранения или как дополнение для хранения данных в формате BSON в СУБД PostgreSQL.

Azure DocumentDB - служба БД документов NoSQL, разработана специально для реализации прямой поддержки JSON и JavaScript внутри ИТ-системы БД. ИТ-решение подходит для приложений, работающих в облаке, когда необходимо обеспечить прогнозируемую пропускную способность, низкий уровень задержек и гибкие возможности работы с запросами.

Microsoft объявила об открытии исходного кода мощного ИТ-инструмента DocumentDB

Ведь на практике DocumentDB применяется в компании Microsoft в качестве основы продукта «Azure Cosmos DB for MongoDB», предоставляющего интерфейс, совместимый с документо-ориентированной СУБД MongoDB. По информации Microsoft, код проекта написан на языке С и распространяется под лицензией Массачусетского технологического института. Движок DocumentDB реализован в форме надстройки над СУБД PostgreSQL.

Как и в MongoDB для хранения структурированных документов в DocumentDB задействован JSON-подобный формат BSON (Bin­ary JSON), позволяющий создавать иерархические структуры, в которых одни документы и массивы могут встраиваться в другие документы и массивы. Ключевым отличием от JSON является использование сериализации данных в бинарное представление. Проект предоставляет как NoSQL-операции для создания, чтения, обновления и удаления данных в формате BSON, так и API для штатного PostgreSQL (DocumentDB может рассматриваться как вариант PostgreSQL с поддержкой BSON). В DocumentDB могут использоваться возможности полнотекстового поиска, операции над векторными и геопространственными типами данных.

Технические компоненты

Проект DocumentDB состоит из двух компонентов: pg_documentdb_core - это расширение к PostgreSQL с реализацией типа BSON и операций для работы в PostgreSQL с данными BSON; pg_documentdb - это общедоступный API DocumentDB с базовыми операциями для работы с документами в формате BSON, обработки запросов и управления индексами.

Первый выпуск DocumentDB предоставляет поддержку операций CRUD (создание, чтение, обновление, удаление), индексы для отдельных полей BSON, индексы для полнотекстового поиска (совместимы с RUM), векторные и геопространственные запросы (совместимые с pg_vector и postgis), возможности для формирования запросов и агрегирования данных BSON.

По данным исследований Wired, использование таких оптимизированных форматов, как BSON, может повысить производительность операций с данными на 30-40%, что делает DocumentDB особенно интересным выбором для разработки высоконагруженных приложений. Открытие исходного кода DocumentDB – это важное событие в области разработки БД. Это ИТ-решение предоставляет программистам мощный ИТ-инструмент для создания и управления системами хранения данных.

Влияние на рынок

На использование DocumentDB уже перешел проект FerretDB, развивающий реализацию СУБД MongoDB на базе СУБД PostgreSQL. ИТ-проект FerretDB позволяет без внесения изменений в код приложений заменить проприетарную документо-ориентированную СУБД MongoDB на полностью открытый программный стек, основанный на PostgreSQL.

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

Необходимость замены MongoDB объясняется переходом данной СУБД на лицензию server side public license (SSPL), которая основана на лицензии AGPLv3, но не является открытой, так как содержит дискриминирующее требование поставки под лицензией SSPL не только кода самого приложения, но и исходных текстов всех компонентов, вовлеченных в предоставление облачного ИТ-сервиса.

Изначально работа FerretDB сводилась к трансляции обращений к MongoDB в SQL-запросы к PostgreSQL. Начиная с версии FerretDB 2.0, которая находится на стадии кандидата в релизы, для реализации поддержки формата BSON задействовано PosgreSQL-расширение DocumentDB.

Сам же переход на использование DocumentDB позволил более чем в 20 раз повысить производительность FerretDB для некоторых видов нагрузки. Из других новшеств FerretDB 2.0 отмечается улучшение совместимости с MongoDB, возможность репликации и поддержка векторного поиска. Код FerretDB написан на языке Go и распространяется под лицензией Apache 2.0.

Антон Денисенко