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, но не е открита, тъй като съдържа дискриминиращо изискване за предоставяне под лицензия SSPL не само на кода на самото приложение, но и на изходните текстове на всички компоненти, участващи в предоставянето на облачната услуга.

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

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

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