Uscita di FerretDB 0.7, implementazione di MongoDB su base del DBMS PostgreSQL

È stata pubblicata la versione 0.7 del progetto FerretDB, che consente di sostituire il database documentale MongoDB con PostgreSQL senza apportare modifiche al codice delle applicazioni. FerretDB è implementato come server proxy che traduce le richieste a MongoDB in query SQL per PostgreSQL, permettendo così di utilizzare PostgreSQL come effettivo storage. Il codice è scritto in Go ed è distribuito con licenza Apache 2.0.

La necessità di migrazione può sorgere a causa del passaggio di MongoDB a una licenza non libera SSPL, che si basa sulla licenza AGPLv3, ma non è aperta, poiché contiene un requisito discriminatorio di fornitura sotto licenza SSPL non solo del codice dell'applicazione stessa, ma anche dei sorgenti di tutti i componenti coinvolti nella fornitura del servizio cloud.

Il principale pubblico target di FerretDB sono gli utenti che non utilizzano nelle loro applicazioni le funzionalità avanzate di MongoDB, ma desiderano utilizzare un'intera stack software open source. Attualmente, FerretDB supporta solo una parte delle funzionalità di MongoDB, quelle più frequentemente utilizzate nelle applicazioni standard. In futuro, è previsto di raggiungere la piena compatibilità con i driver per MongoDB e di fornire la possibilità di utilizzare FerretDB come sostituto trasparente di MongoDB.

MongoDB occupa una posizione intermedia tra sistemi rapidi e scalabili che gestiscono dati in formato chiave/valore e i database relazionali, funzionali e facili da interrogare. MongoDB supporta la memorizzazione di documenti in formato simile a JSON, ha un linguaggio sufficientemente flessibile per la creazione di query, può creare indici per vari attributi memorizzati, gestisce efficacemente la memorizzazione di grandi oggetti binari, supporta il logging delle operazioni di modifica e aggiunta dei dati nel database, può operare secondo la paradigma Map/Reduce, supporta la replica e costruzioni di configurazioni ad alta disponibilità.

Tra le novità di FerretDB 0.7:

  • È stata implementata il comando diagnostico msg_explain, necessario per la piattaforma Tigris.
  • Sono stati aggiunti filtri al comando listCollections (opzione "filter").
  • È consentito l'uso del carattere "-" nei nomi dei database.
  • Il numero di parametri supportati nel comando find è stato aumentato.
  • Nel pacchetto wire, che implementa il protocollo "wire" (protocollo per interagire con MongoDB), è stata aggiunta la possibilità di verificare i documenti. La versione minima supportata del protocollo wire è stata ridotta a 13, corrispondente a MongoDB 5.0.

Fonte: opennet.ru

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