Microsoft откри изходния код на СУБД DocumentDB, базирана на PostgreSQL

Компания Microsoft обяви отварянето на кода на проекта DocumentDB, който може да се използва като отделна NoSQL база данни, платформа за създаване на собствени системи за съхранение или като допълнение за съхранение на данни във формат BSON в PostgreSQL. На практика DocumentDB се прилага в Microsoft като основа на продукта „Azure Cosmos DB for MongoDB“, предоставящ интерфейс, съвместим с документно-ориентираната база данни MongoDB. Кодът на проекта е написан на езика C и се разпространява под лиценз MIT. Двигателят на DocumentDB е реализиран под формата на разширение над PostgreSQL.

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

Проектът се състои от два компонента:

  • pg_documentdb_core — разширение към PostgreSQL с реализация на типа BSON и операции за работа в PostgreSQL с данни в BSON формат.
  • pg_documentdb — обществен API на DocumentDB с основни операции за работа с документи във формат BSON, обработка на запитвания и управление на индекси.

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

Проект FerretDB вече използва DocumentDB, развивайки реализацията на СУБД MongoDB на база PostgreSQL. FerretDB позволява да се замени собственическата документно-ориентирана СУБД MongoDB с напълно отворен софтуерен стек, базиран на PostgreSQL, без да се променя кодът на приложенията. Необходимостта от смяна на MongoDB е обяснена с преминаването на тази СУБД на лиценза SSPL, който се основава на AGPLv3, но не е отворен, тъй като включва дискриминационно изискване за предоставяне не само на кода на самото приложение, но и на изходния код на всички компоненти, участващи в предоставянето на облачната услуга.

Първоначалната работа на FerretDB се състоеше в транслация на повиквания от MongoDB в SQL заявки към PostgreSQL, но от версия FerretDB 2.0, която е в етап кандидати за релиз, е ангажирано разширението DocumentDB на PostgreSQL за внедряване на поддръжка на BSON формата. Преминаването към използване на DocumentDB позволи да се увеличи производителността на FerretDB повече от 20 пъти за определени натоварвания. Сред другите нововъведения в FerretDB 2.0 се отбелязва подобрена съвместимост с MongoDB, възможност за репликация и поддръжка на векторно търсене. Кодът на FerretDB е написан на езика Go и се разпространява под лицензия Apache 2.0.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster