È stata pubblicata la versione 0.7 del progetto FerretDB, che consente di sostituire il database NoSQL MongoDB con PostgreSQL senza apportare modifiche al codice delle applicazioni. FerretDB è implementato come un server proxy che traduce le chiamate a MongoDB in query SQL per PostgreSQL, permettendo così l'uso di PostgreSQL come archivio effettivo. Il codice è scritto in Go e distribuito con licenza Apache 2.0.
Può sorgere la necessità di migrazione a causa della transizione di MongoDB a una licenza non libera SSPL, che si basa sulla licenza AGPLv3 ma non è open source, poiché contiene una richiesta discriminatoria di fornitura sotto licenza SSPL non solo del codice dell'applicazione ma anche dei codici sorgente di tutti i componenti coinvolti nella fornitura del servizio cloud.
Il principale pubblico target di FerretDB è costituito da utenti che non utilizzano nelle proprie applicazioni le funzionalità avanzate di MongoDB, ma desiderano impiegare un intero stack software open source. Attualmente, FerretDB supporta solo una parte delle funzionalità di MongoDB, le più frequentemente utilizzate nelle applicazioni standard. In futuro si prevede di raggiungere la completa compatibilità con i driver per MongoDB e di consentire l'uso di FerretDB come sostituto trasparente di MongoDB.
MongoDB occupa una nicchia tra sistemi rapidi e scalabili che operano dati in formato chiave/valore e database relazionali, funzionali e comodi nella formulazione delle query. MongoDB supporta l'archiviazione di documenti in formato JSON-simile, ha un linguaggio abbastanza flessibile per la formulazione delle query, può creare indici per diversi attributi archiviati, gestisce in modo efficace l'archiviazione di grandi oggetti binari, supporta il logging delle operazioni di modifica e aggiunta di dati nel DB, può operare secondo il paradigma Map/Reduce, supporta la replicazione e la costruzione di configurazioni a tolleranza agli errori.
Tra le novità di FerretDB 0.7:
- Implementato il comando diagnostico msg_explain, necessario per la piattaforma Tigris.
- Aggiunta la supporto per filtri nel comando listCollections (opzione «filter»).
- Consentito l'uso del simbolo «-» nei nomi dei database.
- Aumentato il numero di parametri supportati nel comando find.
- Nel pacchetto wire con implementazione del protocollo «wire» (protocollo per l'interazione con MongoDB) è stata aggiunta la possibilità di verificare i documenti. La versione minima supportata del protocollo wire è stata abbassata a 13, corrispondente a MongoDB 5.0.
Fonte: opennet.ru
