Microsoft har tillkÀnnagett öppnandet av koden för projektet DocumentDB, som kan anvÀndas som en fristÄende NoSQL-databas, som plattform för att skapa egna lagringssystem eller som ett komplement för att lagra data i BSON-format i PostgreSQL-databasen. I praktiken anvÀnds DocumentDB av Microsoft som bas för produkten 'Azure Cosmos DB for MongoDB', som erbjuder ett grÀnssnitt kompatibelt med den dokumentorienterade databasen MongoDB. Projektkoden Àr skriven i C och distribueras under MIT-licensen. DocumentDB-motorn implementeras som ett tillÀgg till PostgreSQL-databasen.
Precis som i MongoDB anvÀnds ett JSON-liknande BSON-format (Binary JSON) för lagring av strukturerade dokument i DocumentDB, vilket möjliggör skapandet av hierarkiska strukturer dÀr dokument och arrayar kan inbÀddas i andra dokument och arrayar. Den viktigaste skillnaden frÄn JSON Àr anvÀndningen av binÀr serialisering av data. Projektet erbjuder bÄde NoSQL-operationer för skapande, lÀsning, uppdatering och borttagning av data i BSON-format samt ett API för vanlig PostgreSQL (DocumentDB kan ses som en variant av PostgreSQL med stöd för BSON). DocumentDB kan anvÀnda funktioner för fulltextsökning, samt operationer med vektor- och geografiska datatyper.
Projektet bestÄr av tvÄ komponenter:
- pg_documentdb_core â ett tillĂ€gg till PostgreSQL med implementering av BSON-typ och operationer för att arbeta med BSON-data i PostgreSQL.
- pg_documentdb â en offentlig API för DocumentDB med grundlĂ€ggande operationer för att arbeta med dokument i BSON-format, hantera frĂ„gor och administrera index.
Den första versionen av DocumentDB ger stöd för CRUD-operationer (skapande, lÀsning, uppdatering, borttagning), index för enskilda BSON-fÀlt, index för fulltextsökning (kompatibla med RUM), vektor- och geografiska frÄgor (kompatibla med pg_vector och postgis), samt möjligheter för att skapa frÄgor och aggregare för BSON-data.
Projektet FerretDB har redan övergÄtt till att anvÀnda DocumentDB, som utvecklar en implementation av databashanteringssystemet MongoDB baserat pÄ PostgreSQL. FerretDB gör det möjligt att utan förÀndringar i applikationernas kod byta ut den proprietÀra dokumentorienterade databashanteraren MongoDB mot en helt öppen programvarustack baserad pÄ PostgreSQL. Behovet av att ersÀtta MongoDB förklaras av att detta databashanteringssystem har övergÄtt till SSPL-licens, som bygger pÄ AGPLv3-licensen, men inte Àr öppen, eftersom den innehÄller diskriminerande krav pÄ att leverera inte bara koden för sjÀlva applikationen utan ocksÄ kÀllkoden för alla komponenter som Àr involverade i att tillhandahÄlla molntjÀnsten.
Inledningsvis handlade FerretDB:s arbete om att översĂ€tta anrop till MongoDB till SQL-frĂ„gor för PostgreSQL, men frĂ„n och med version FerretDB 2.0, som Ă€r i kandidatversion, har PostgreSQL-tillĂ€gget DocumentDB anvĂ€nts för att stödja BSON-formatet. ĂvergĂ„ngen till anvĂ€ndning av DocumentDB har möjliggjort mer Ă€n 20 gĂ„nger högre prestanda för FerretDB för vissa typer av belastning. Bland andra nyheter i FerretDB 2.0 nĂ€mns förbĂ€ttrad kompatibilitet med MongoDB, möjligheten till replikering och stöd för vektor-sökning. Koden för FerretDB Ă€r skriven i Go-sprĂ„ket och distribueras under Apache 2.0-licensen.
KĂ€lla: opennet.ru
