Microsoft har åpnet kildekoden til DocumentDB-database, basert på PostgreSQL

Microsoft har kunngjort åpningen av kildekoden for prosjektet DocumentDB, som kan brukes som en separat NoSQL-database, som en plattform for å lage egne lagringssystemer eller som et tillegg for lagring av data i BSON-format i PostgreSQL-databasen. I praksis brukes DocumentDB av Microsoft som grunnlag for produktet «Azure Cosmos DB for MongoDB», som tilbyr et grensesnitt kompatibelt med den dokumentorienterte databasen MongoDB. Koden for prosjektet er skrevet i C og distribueres under MIT-lisensen. DocumentDB-motoren er implementert som et tillegg til PostgreSQL-databasen.

Slik som i MongoDB bruker DocumentDB et JSON-lignende BSON-format (Bin­ary JSON) for lagring av strukturerte dokumenter, noe som gjør det mulig å lage hierarkiske strukturer der dokumenter og matriser kan være innebygd i andre dokumenter og matriser. En nøkkelforskjell fra JSON er bruken av serialisering av data i binært format. Prosjektet gir både NoSQL-operasjoner for oppretting, lesing, oppdatering og sletting av data i BSON-format, samt et API for standard PostgreSQL (DocumentDB kan betraktes som en variant av PostgreSQL med støtte for BSON). DocumentDB kan bruke funksjoner for fulltekst-søk, operasjoner på vektor- og geografiske datatyper.

Prosjektet består av to komponenter:

  • pg_documentdb_core — et tillegg til PostgreSQL med implementering av BSON-type og operasjoner for å arbeide med BSON-data i PostgreSQL.
  • pg_documentdb — et offentlig API for DocumentDB med grunnleggende operasjoner for å arbeide med dokumenter i BSON-format, behandlingsforespørsel og administrasjon av indekser.

Den første utgivelsen av DocumentDB gir støtte for CRUD-operasjoner (oppretting, lesing, oppdatering, sletting), indekser for individuelle BSON-felt, indekser for fulltekst-søk (kompatible med RUM), vektor- og geografiske forespørsel (kompatible med pg_vector og postgis), muligheter for å lage forespørsel og aggregere data i BSON.

Prosjektet FerretDB har allerede gått over til å bruke DocumentDB, som utvikler implementeringen av MongoDB-databasen basert på PostgreSQL-databasen. FerretDB lar deg erstatte den proprietære dokumentorienterte databasen MongoDB med en helt åpen programvare-stakk bygd på PostgreSQL uten å måtte endre koden i applikasjonene. Behovet for å bytte ut MongoDB skyldes at denne databasen har gått over til SSPL-lisensen, som er basert på AGPLv3-lisensen, men ikke er åpen, da den inneholder diskriminerende krav om at både selve applikasjonens kode og kildekoden til alle komponentene involvert i levering av skyttjenester må leveres under SSPL-lisensen.

Opprinnelig var arbeidet i FerretDB begrenset til å oversette forespørslene til MongoDB til SQL-forespørsel til PostgreSQL, men fra og med versjon 2.0 av FerretDB, som er i kandidatstadiet for utgivelse, er PostgreSQL-utvidelsen DocumentDB involvert for å støtte BSON-formatet. Overgangen til å bruke DocumentDB har gjort det mulig å mer enn tidoble ytelsen til FerretDB for enkelte typer last. Blant andre nyheter i FerretDB 2.0 er forbedret kompatibilitet med MongoDB, mulighet for replikering og støtte for vektorbasert søk. Koden til FerretDB er skrevet i Go og distribueres under Apache 2.0-lisensen.

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster