Microsoft a deschis codul SGBD-ului DocumentDB, bazat pe PostgreSQL.

Compania Microsoft a anunțat deschiderea codului proiectului DocumentDB, care poate fi utilizat ca un sistem de gestionare a bazelor de date NoSQL separat, ca platformă pentru crearea propriilor sisteme de stocare sau ca un complement pentru stocarea datelor în format BSON în baza de date PostgreSQL. În practică, DocumentDB este utilizat de Microsoft ca bază a produsului „Azure Cosmos DB for MongoDB”, oferind o interfață compatibilă cu baza de date orientată pe documente MongoDB. Codul proiectului este scris în limbajul C și este distribuit sub licența MIT. Motorul DocumentDB este implementat ca un addon pentru baza de date PostgreSQL.

Ca și în MongoDB, pentru stocarea documentelor structurate în DocumentDB este utilizat un format de tip JSON, numit BSON (Binary JSON), care permite crearea de structuri ierarhice în care documentele și array-urile pot fi încorporate în alte documente și array-uri. Principala diferență față de JSON este utilizarea serializării datelor într-o reprezentare binară. Proiectul oferă atât operațiuni NoSQL pentru crearea, citirea, actualizarea și ștergerea datelor în format BSON, cât și un API pentru PostgreSQL standard (DocumentDB poate fi considerat o variantă a PostgreSQL cu suport pentru BSON). În DocumentDB pot fi utilizate funcționalitățile de căutare text complet, operații cu tipuri de date vectoriale și geospațiale.

Proiectul este compus din două componente:

  • pg_documentdb_core — o extensie pentru PostgreSQL cu implementarea tipului BSON și operațiuni pentru lucrul cu date BSON în PostgreSQL.
  • pg_documentdb — API-ul public DocumentDB cu operațiuni de bază pentru lucrul cu documentele în format BSON, procesarea cererilor și gestionarea indicilor.

Primul release DocumentDB oferă suport pentru operațiuni CRUD (creare, citire, actualizare, ștergere), indicii pentru câmpuri individuale BSON, indicii pentru căutare text complet (compatibili cu RUM), interogări vectoriale și geospațiale (compatibile cu pg_vector și postgis), funcționalități pentru generarea de cereri și agregarea datelor BSON.

Proiectul FerretDB a trecut deja la utilizarea DocumentDB, dezvoltând implementarea SGBD-ului MongoDB pe baza SGBD-ului PostgreSQL. FerretDB permite înlocuirea SGBD-ului documentar proprietar MongoDB cu un stivă software complet deschisă, bazată pe PostgreSQL, fără a necesita modificări în codul aplicațiilor. Necesitatea înlocuirii MongoDB este explicată de trecerea acestui SGBD la licența SSPL, care este bazată pe licența AGPLv3, dar nu este deschisă, deoarece conține o cerință discriminatorie pentru oferirea nu doar a codului aplicației în sine, ci și a codului sursă al tuturor componentelor implicate în furnizarea serviciului cloud.

Inițial, activitatea FerretDB se rezuma la transpunerea apelurilor către MongoDB în interogări SQL către PostgreSQL, dar începând cu versiunea FerretDB 2.0, care este în stadiul de candidat pentru lansare, pentru sprijinirea formatului BSON a fost folosită extensia DocumentDB pentru PostgreSQL. Trecerea la utilizarea DocumentDB a permis o creștere a performanței FerretDB de peste 20 de ori pentru anumite tipuri de sarcini. Alte noutăți din FerretDB 2.0 includ îmbunătățirea compatibilității cu MongoDB, capacitatea de replicare și suportul pentru căutarea vectorială. Codul FerretDB este scris în limbajul Go și este distribuit sub licența Apache 2.0.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster