DBMS orientato ai documenti MongoDB 5.0 disponibile

Viene presentato il rilascio del DBMS orientato ai documenti MongoDB 5.0, che occupa una nicchia tra sistemi veloci e scalabili che gestiscono dati in formato chiave/valore e DBMS relazionali che sono funzionali e facili da formulare query. Il codice MongoDB è scritto in C++ e distribuito sotto la licenza SSPL, che si basa sulla licenza AGPLv3, ma non è aperta, poiché contiene un requisito discriminatorio di fornire sotto la licenza SSPL non solo il codice dell'applicazione stessa, ma anche il sorgente codice di tutte le componenti coinvolte nella fornitura del servizio cloud.

MongoDB supporta l'archiviazione di documenti in un formato simile a JSON, ha un linguaggio abbastanza flessibile per generare query, può creare indici per vari attributi archiviati, fornisce in modo efficiente l'archiviazione di oggetti binari di grandi dimensioni, supporta la registrazione di operazioni per modificare e aggiungere dati al database, può funziona secondo il paradigma Map/Reduce, supporta la replica e la creazione di configurazioni tolleranti agli errori.

MongoDB dispone di strumenti di sharding integrati (distribuzione di un set di dati tra server in base a una chiave specifica), in combinazione con la replica, che consente di creare un cluster di archiviazione scalabile orizzontalmente che non presenta un singolo punto di errore (il guasto di qualsiasi nodo non non influisca sul funzionamento del database), failover automatico e trasferimento del carico da un nodo guasto. L'espansione di un cluster o la conversione di un server in un cluster viene eseguita senza arrestare il database semplicemente aggiungendo nuove macchine.

Caratteristiche della nuova versione:

  • Aggiunte raccolte di dati sotto forma di serie temporali (raccolte di serie temporali), ottimizzate per memorizzare porzioni di valori di parametri registrati a determinati intervalli (tempo e un insieme di valori corrispondenti a questo tempo). La necessità di archiviare tali dati nasce nei sistemi di monitoraggio, nelle piattaforme finanziarie e nei sistemi per il polling degli stati dei sensori. Il lavoro con i dati delle serie temporali viene eseguito come con le normali raccolte di documenti, ma gli indici e il metodo di archiviazione per essi sono ottimizzati tenendo conto del riferimento temporale, che può ridurre significativamente il consumo di spazio su disco, ridurre i ritardi nell'esecuzione delle query e consentire dati in tempo reale analisi.

    MongoDB tratta tali raccolte come visualizzazioni scrivibili e non materializzate costruite su raccolte interne che, una volta inserite, raggruppano automaticamente i dati delle serie temporali in un formato di archiviazione ottimizzato. In questo caso, ogni record basato sul tempo viene trattato come un documento separato quando richiesto. I dati vengono automaticamente ordinati e indicizzati in base al tempo (non è necessario creare esplicitamente indici temporali).

  • Aggiunto il supporto per gli operatori finestra (funzioni analitiche) che consentono di eseguire azioni con un insieme specifico di documenti nella raccolta. A differenza delle funzioni aggregate, le funzioni finestra non comprimono il set raggruppato, ma piuttosto lo aggregano in base al contenuto di una “finestra” che include uno o più documenti dal set di risultati. Per manipolare un sottoinsieme di documenti, viene proposta una nuova fase $setWindowFields, con la quale è possibile, ad esempio, determinare le differenze tra due documenti in una raccolta, calcolare classifiche di vendita e analizzare informazioni in serie temporali complesse.
  • Aggiunto il supporto per il controllo delle versioni dell'API, che consente di associare un'applicazione a uno specifico stato dell'API ed eliminare i rischi associati a una possibile violazione della compatibilità con le versioni precedenti durante la migrazione a nuove versioni del DBMS. Il controllo delle versioni API separa il ciclo di vita dell'applicazione dal ciclo di vita del DBMS e consente agli sviluppatori di apportare modifiche all'applicazione quando è necessario utilizzare nuove funzionalità e non durante la migrazione a una nuova versione del DBMS.
  • Aggiunto il supporto per il meccanismo Live Resharding, che consente di modificare al volo le chiavi di shard utilizzate per la segmentazione senza arrestare il DBMS.
  • Le possibilità di crittografia dei campi lato client sono state ampliate (Crittografia a livello di campo lato client). Ora è possibile riconfigurare i filtri di controllo e ruotare i certificati x509 senza arrestare il DBMS. Aggiunto supporto per la configurazione della suite di crittografia per TLS 1.3.
  • Viene proposta una nuova shell a riga di comando, MongoDB Shell (mongosh), che viene sviluppata come progetto separato, scritta in JavaScript utilizzando la piattaforma Node.js e distribuita sotto la licenza Apache 2.0. MongoDB Shell consente di connettersi al DBMS, modificare le impostazioni e inviare query. Supporta il completamento automatico intelligente per l'immissione di metodi, comandi ed espressioni MQL, evidenziazione della sintassi, guida contestuale, analisi dei messaggi di errore e la possibilità di espandere le funzionalità tramite componenti aggiuntivi. Il vecchio wrapper CLI "mongo" è stato deprecato e verrà rimosso in una versione futura.
    DBMS orientato ai documenti MongoDB 5.0 disponibile
  • Sono stati aggiunti nuovi operatori: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate e $rand.
  • Garantisce che vengano utilizzati gli indici quando si utilizzano gli operatori $eq, $lt, $lte, $gt e $gte all'interno dell'espressione $expr.
  • I comandi aggregate, find, findAndModify, update, delete e i metodi db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() e db.collection.remove() ora supportano il comando "let " opzione per definire un elenco di variabili che rendono i comandi più leggibili separando le variabili dal corpo della richiesta.
  • Le operazioni find, count, distinte, aggregate, mapReduce, listCollections e listIndexes non si bloccano più se un'operazione che accetta un blocco esclusivo su una raccolta di documenti viene eseguita in parallelo.
  • Nell'ambito di un'iniziativa per rimuovere i termini politicamente scorretti, il comando isMaster e il metodo db.isMaster() sono stati rinominati hello e db.hello().
  • Lo schema di numerazione dei rilasci è stato modificato ed è stata effettuata la transizione verso un programma di rilascio prevedibile. Una volta all'anno ci sarà un rilascio significativo (5.0, 6.0, 7.0), ogni tre mesi rilasci intermedi con nuove funzionalità (5.1, 5.2, 5.3) e, se necessario, aggiornamenti correttivi con correzioni di bug e vulnerabilità (5.1.1, 5.1.2 .5.1.3 , 5.1). Le versioni provvisorie creeranno funzionalità per la prossima versione principale, ad es. MongoDB 5.2, 5.3 e 6.0 forniranno nuove funzionalità per il rilascio di MongoDB XNUMX.

Fonte: opennet.ru

Aggiungi un commento