Microsoft heeft de code van de DocumentDB-database, gebaseerd op PostgreSQL, vrijgegeven.

Microsoft heeft de open source-code van het DocumentDB-project aangekondigd, dat kan worden gebruikt als een zelfstandige NoSQL-database, als een platform voor het creëren van eigen opslagsystemen of als een aanvulling voor het opslaan van gegevens in BSON-formaat in een PostgreSQL-database. In de praktijk wordt DocumentDB door Microsoft gebruikt als basis voor het product 'Azure Cosmos DB for MongoDB', dat een interface biedt die compatibel is met de document-georiënteerde database MongoDB. De projectcode is geschreven in C en wordt verspreid onder de MIT-licentie. De DocumentDB-engine is geïmplementeerd als een extensie bovenop de PostgreSQL-database.

Net als in MongoDB maakt DocumentDB gebruik van een JSON-achtig BSON-formaat (Binary JSON) voor het opslaan van gestructureerde documenten, waardoor hiƫrarchische structuren kunnen worden gemaakt waarin documenten en arrays in andere documenten en arrays kunnen worden ingebed. Het belangrijkste verschil met JSON is het gebruik van serialisatie van gegevens naar een binaire representatie. Het project biedt zowel NoSQL-operaties voor het creƫren, lezen, bijwerken en verwijderen van gegevens in BSON-formaat als een API voor standaard PostgreSQL (DocumentDB kan worden gezien als een variant van PostgreSQL met ondersteuning voor BSON). In DocumentDB kunnen de mogelijkheden voor full-text search, vector- en ruimtelijke datatypes worden gebruikt.

Het project bestaat uit twee componenten:

  • pg_documentdb_core — een extensie voor PostgreSQL met de implementatie van het BSON-type en operaties voor het werken met BSON-gegevens in PostgreSQL.
  • pg_documentdb — een openbare API van DocumentDB met basisoperaties voor het werken met documenten in BSON-formaat, het verwerken van verzoeken en het beheren van indexen.

De eerste release van DocumentDB biedt ondersteuning voor CRUD-operaties (creƫren, lezen, bijwerken, verwijderen), indexen voor afzonderlijke BSON-velden, indexen voor full-text search (compatibel met RUM), vector- en ruimtelijke zoekopdrachten (compatibel met pg_vector en postgis), mogelijkheden voor het vormen van zoekopdrachten en aggregatie van BSON-gegevens.

Het project FerretDB is overgestapt op het gebruik van DocumentDB, waarmee de implementatie van de MongoDB-database wordt ontwikkeld op basis van de PostgreSQL-database. FerretDB maakt het mogelijk om zonder wijzigingen aan de applicatiecode de propriƫtaire documentgeoriƫnteerde MongoDB-database te vervangen door een volledig open softwarestack, gebaseerd op PostgreSQL. De noodzaak om MongoDB te vervangen wordt verklaard door de overstap van deze database naar de SSPL-licentie, die is gebaseerd op de AGPLv3-licentie, maar niet open is, aangezien het een discriminerende eis bevat om onder de SSPL-licentie niet alleen de code van de applicatie zelf, maar ook de bronbestanden van alle componenten die betrokken zijn bij het aanbieden van de cloudservice, te leveren.

Oorspronkelijk was het werk van FerretDB gericht op het vertalen van verzoeken naar MongoDB in SQL-query's naar PostgreSQL, maar vanaf versie FerretDB 2.0, die zich in de kandidaat-ronde voor releases bevindt, wordt het PostgreSQL-extensie DocumentDB ingezet om ondersteuning voor het BSON-formaat te implementeren. De overstap naar het gebruik van DocumentDB heeft de prestaties van FerretDB voor bepaalde soorten belasting meer dan 20 keer verhoogd. Andere nieuwigheden in FerretDB 2.0 zijn verbeterde compatibiliteit met MongoDB, de mogelijkheid tot replicatie en ondersteuning voor vectorzoekopdrachten. De code van FerretDB is geschreven in de programmeertaal Go en wordt verspreid onder de Apache 2.0-licentie.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster