Disponibile il database orientato ai documenti MongoDB 6.0

Dopo un anno di sviluppo, viene presentata la versione del database orientato ai documenti MongoDB 6.0, che occupa una nicchia tra i sistemi veloci e scalabili che gestiscono dati in formato chiave/valore e i database relazionali, funzionali e comodi da interrogare. Il codice di MongoDB è scritto in C++ e distribuito sotto la licenza SSPL, basata sulla licenza AGPLv3, ma non è open source poiché contiene un requisito discriminatorio di fornitura della licenza SSPL non solo per il codice dell'applicazione stessa, ma anche per il codice sorgente di tutti i componenti coinvolti nella fornitura del servizio cloud.

MongoDB supporta l'archiviazione di documenti in un formato simile a JSON, ha un linguaggio sufficientemente flessibile per creare query, può generare indici per diversi attributi memorizzati, gestisce in modo efficiente l'archiviazione di grandi oggetti binari, supporta il logging delle operazioni di modifica e aggiunta di dati nel database, può operare secondo il paradigma Map/Reduce e supporta la replicazione e la costruzione di configurazioni a tolleranza di guasto.

MongoDB offre strumenti integrati per garantire il partizionamento (distribuzione del set di dati sui server basata su una chiave definita), insieme alla replica, consentendo la creazione di un cluster di archiviazione orizzontalmente scalabile, senza un singolo punto di guasto (il malfunzionamento di un nodo non influisce sul funzionamento del database), supportando il ripristino automatico dopo un guasto e il bilanciamento del carico da un nodo non funzionante. L'espansione del cluster o la transizione di un server nodo in cluster avviene senza interrompere il funzionamento del database, semplicemente aggiungendo nuove macchine.

Principali caratteristiche della nuova versione:

  • È stata implementata la possibilità di eseguire interrogazioni su dati memorizzati in forma crittografata (Queryable Encryption). I dati vengono decrittografati lato utente e rimangono crittografati durante l'elaborazione della query (l'interrogazione viene eseguita sui dati crittografati, senza la loro decrittografia preliminare). Attualmente, nelle query sono consentite solo espressioni di confronto, ma in futuro si prevede di aggiungere supporto per il controllo di intervalli, prefissi, suffissi, sottostringhe e altre operazioni.
  • Sono state ampliate le capacità relative alla memorizzazione dei dati in forma di serie temporali (time series collections), ottimizzate per la memorizzazione di campioni di valori di parametri registrati a intervalli di tempo specifici (tempo e insieme dei valori corrispondenti a quel tempo), ad esempio, è necessaria la memorizzazione di tali dati in sistemi di monitoraggio, piattaforme finanziarie, sistemi di interrogazione dello stato dei sensori. Nella nuova versione è stata fornita la possibilità di utilizzare indici secondari e compositi con raccolte di dati in forma di serie temporali. È stato aggiunto il supporto per l'allegare dati aggiuntivi, ad esempio, informazioni geografiche per tenere conto della distanza e della posizione. È stata migliorata la performance di lettura, esecuzione delle query e ordinamento.
  • Sono stati aggiunti nuovi strumenti per il monitoraggio delle modifiche ("change streams", API Change Streams), tramite i quali è possibile organizzare l'invio di notifiche alle applicazioni riguardo alle modifiche dei dati nel DB. Le informazioni sulle modifiche vengono fornite in tempo reale e consentono di creare applicazioni utilizzando metodi di programmazione reattiva e orientata agli eventi. Gli eventi vengono elaborati tramite il metodo watch, mentre gli eventi necessari possono essere filtrati e aggregati utilizzando gli operatori $match, $project e $redact. Nella nuova versione è stata fornita la possibilità di ottenere lo stato precedente e successivo di un documento (ad esempio, quando un documento è stato eliminato o modificato). Oltre alle operazioni utilizzando il linguaggio DML (data manipulation language), è stato fornito il supporto per le operazioni DDL (data definition language), come la creazione e la cancellazione di indici e raccolte. Sono stati aggiunti strumenti per filtrare le notifiche associate.
  • Negli operatori $lookup e $graphlookup è stata implementata una piena compatibilità con i repository partizionati (sharded). È stata ottimizzata la performance dell'operazione $lookup; ad esempio, con un indice sulla chiave esterna, il confronto di un piccolo numero di documenti ora avviene da 5 a 10 volte più velocemente, mentre un grande numero di documenti avviene il doppio più velocemente. Per i confronti senza utilizzo di indici, il guadagno prestazionale può arrivare fino a 100 volte.
  • È stata fornita la possibilità di eseguire interrogazioni analitiche complesse su snapshot coerenti dello stato dei dati di lavoro. Tali interrogazioni analitiche possono coprire più segmenti in grandi configurazioni distribuite di MongoDB.
  • Sono stati aggiunti nuovi operatori $maxN, $minN e $lastN per determinare i valori in un insieme di dati, così come l'operatore $sortArray per ordinare gli elementi di un array.
  • È stata significativamente aumentata l'efficienza del partizionamento. La dimensione predefinita del blocco per raccolte partizionate è stata aumentata a 128 MB. È stato aggiunto il comando configureCollectionBalancing per la deframmentazione delle raccolte partizionate.
  • Nella crittografia dei dati lato client a livello di campo (CSFLE, client-side field-level encryption) è stato aggiunto il supporto per fornitori di chiavi compatibili con KMIP.
  • È stata aggiunta la possibilità di compressione e crittografia del registro delle attività, che riflette l'attività degli utenti nel DBMS.
  • È stata implementata una modalità sperimentale di sincronizzazione dei dati tra cluster MongoDB (Cluster-to-Cluster Sync).

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