Microsoft har åbnet koden til databasen DocumentDB, baseret på PostgreSQL.

Microsoft har annonceret koden til projektet DocumentDB, som kan bruges som en separat NoSQL-database, som en platform til at opbygge egne lagersystemer eller som et supplement til at gemme data i BSON-format i PostgreSQL-databasen. I praksis anvendes DocumentDB af Microsoft som grundlaget for produktet 'Azure Cosmos DB for MongoDB', der tilbyder et interface kompatibelt med den dokumentorienterede database MongoDB. Projektkoden er skrevet i C og distribueres under MIT-licensen. DocumentDB-motoren er implementeret som et plugin til PostgreSQL-databasen.

Som i MongoDB anvendes et JSON-lignende BSON-format (Binary JSON) til at gemme strukturerede dokumenter i DocumentDB, hvilket gør det muligt at skabe hierarkiske strukturer, hvor dokumenter og arrays kan indlejres i andre dokumenter og arrays. En nøgleforskel fra JSON er brugen af seriellisering af data til en binær repræsentation. Projektet tilbyder både NoSQL-operationer til oprettelse, læsning, opdatering og sletning af data i BSON-format samt et API til standard PostgreSQL (DocumentDB kan ses som en version af PostgreSQL med støtte for BSON). I DocumentDB kan funktionerne til fuldtekstsøging og operationer med vektorer samt geospatiale datatyper anvendes.

Projektet består af to komponenter:

  • pg_documentdb_core — en udvidelse til PostgreSQL med implementering af BSON-typen og operationer til at arbejde med BSON-data i PostgreSQL.
  • pg_documentdb — et offentligt tilgængeligt API til DocumentDB med grundlæggende operationer til at arbejde med dokumenter i BSON-format, behandling af forespørgsler og indeksadministration.

Den første version af DocumentDB understøtter CRUD-operationer (oprettelse, læsning, opdatering, sletning), indekser for individuelle BSON-felter, indekser til fuldtekstsøging (kompatible med RUM), vektor- og geospatiale forespørgsler (kompatible med pg_vector og postgis), samt muligheder for at danne forespørgsler og aggregere BSON-data.

Projektet FerretDB har allerede skiftet til at bruge DocumentDB, som udvikler implementeringen af MongoDB-database baseret på PostgreSQL. FerretDB gør det muligt at erstatte den proprietære dokumentorienterede database MongoDB med et helt åbent softwarestack baseret på PostgreSQL uden ændringer i applikationskoden. Behovet for at erstatte MongoDB skyldes, at denne database er overgået til SSPL-licens, som er baseret på AGPLv3-licensen, men ikke er åben, da den indeholder diskriminerende krav om levering under SSPL-licensen ikke kun af selve applikationskoden, men også kildekoden til alle komponenter involveret i leveringen af cloudtjenesten.

Oprindeligt bestod arbejdsgangen i FerretDB af at oversætte forespørgsler til MongoDB til SQL-forespørgsler til PostgreSQL, men fra version 2.0 af FerretDB, som er i kandidatfasen til udgivelser, er PostgreSQL-udvidelsen DocumentDB blevet involveret for at understøtte BSON-formatet. Overgangen til at bruge DocumentDB har gjort det muligt at øge ydelsen af FerretDB med mere end 20 gange for visse typer belastninger. Andre nyheder i FerretDB 2.0 inkluderer forbedret kompatibilitet med MongoDB, mulighed for replikering og støtte til vektorsøgning. Koden til FerretDB er skrevet i Go og distribueres under Apache 2.0-licensen.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster