Microsoft ha rilasciato il codice del database DocumentDB, basato su PostgreSQL

L'azienda Microsoft ha annunciato l'apertura del codice del progetto DocumentDB, che può essere utilizzato come un database NoSQL autonomo, come piattaforma per creare i propri sistemi di archiviazione o come supplemento per l'archiviazione dei dati in formato BSON nel database PostgreSQL. Nella pratica, DocumentDB è utilizzato in Microsoft come base per il prodotto "Azure Cosmos DB for MongoDB", che fornisce un'interfaccia compatibile con il database orientato ai documenti MongoDB. Il codice del progetto è scritto in linguaggio C e distribuito con licenza MIT. Il motore DocumentDB è realizzato come un'estensione del database PostgreSQL.

Come in MongoDB, per l'archiviazione di documenti strutturati, in DocumentDB è impiegato un formato simile a JSON, il BSON (Binary JSON), che consente la creazione di strutture gerarchiche in cui alcuni documenti e array possono essere incorporati in altri documenti e array. La differenza chiave rispetto al JSON è l'uso della serializzazione dei dati in una rappresentazione binaria. Il progetto offre sia operazioni NoSQL per la creazione, lettura, aggiornamento e cancellazione dei dati in formato BSON, sia un'API per il PostgreSQL standard (DocumentDB può essere considerato come una variante di PostgreSQL con supporto per BSON). In DocumentDB possono essere utilizzate funzionalità di ricerca full-text, operazioni su tipi di dati vettoriali e geospaziali.

Il progetto è composto da due componenti:

  • pg_documentdb_core — un'estensione per PostgreSQL che implementa il tipo BSON e operazioni per lavorare in PostgreSQL con dati BSON.
  • pg_documentdb — API pubblica di DocumentDB con operazioni di base per lavorare con documenti in formato BSON, elaborazione delle richieste e gestione degli indici.

Il primo rilascio di DocumentDB fornisce supporto per le operazioni CRUD (creazione, lettura, aggiornamento, cancellazione), indici per singoli campi BSON, indici per la ricerca full-text (compatibili con RUM), query vettoriali e geospaziali (compatibili con pg_vector e postgis), funzionalità per la formazione di query e aggregazione dei dati BSON.

Il progetto FerretDB ha già adottato DocumentDB, sviluppando l'implementazione del database MongoDB basato su PostgreSQL. FerretDB consente di sostituire il database proprietario MongoDB, senza modificare il codice delle applicazioni, con un'intera stack software aperto, basato su PostgreSQL. La necessità di sostituire MongoDB è spiegata dal passaggio di questo database alla licenza SSPL, che si basa sulla licenza AGPLv3, ma non è aperta, in quanto contiene requisiti discriminatori per la fornitura sotto licenza SSPL non solo del codice dell'applicazione, ma anche dei sorgenti di tutti i componenti coinvolti nella fornitura del servizio cloud.

Inizialmente, il lavoro di FerretDB consisteva nella traduzione delle richieste a MongoDB in query SQL per PostgreSQL, ma a partire dalla versione 2.0 di FerretDB, attualmente in fase di candidatura per il rilascio, è stato utilizzato l'estensione per PostgreSQL DocumentDB per implementare il supporto per il formato BSON. L'adozione di DocumentDB ha consentito un aumento della performance di FerretDB per alcuni tipi di carico di lavoro di oltre 20 volte. Tra le altre novità di FerretDB 2.0 si segnalano miglioramenti nella compatibilità con MongoDB, la possibilità di replica e il supporto per la ricerca vettoriale. Il codice di FerretDB è scritto in Go e distribuito sotto licenza Apache 2.0.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster