Rilascio del DBMS orientato ai documenti Apache CouchDB 3.0

ha avuto luogo rilascio di un database distribuito orientato ai documenti Apache CouchDB 3.0, appartenente alla classe dei sistemi NoSQL. Fonti del progetto diffusione concesso in licenza con Apache 2.0.

Miglioramentiimplementato in Apache CouchDB 3.0:

  • La configurazione predefinita è stata migliorata.
    All'avvio occorre ora definire l'utente admin, senza il quale il server terminerà con errore (permette di risolvere problemi di avvio di server che lasciano inavvertitamente l'accesso senza autenticazione). Le chiamate a "/_all_dbs" ora richiedono i diritti di amministratore e tutti i database vengono creati per impostazione predefinita accessibili solo all'utente amministratore (i parametri di accesso possono essere modificati tramite l'oggetto "_security"). Per impostazione predefinita, è vietata la modifica degli oggetti nel database _users;

  • Aggiunto da la possibilità di creare database segmentati (partizionati) definiti dall'utente, consentendo di definire le proprie regole per la distribuzione dei documenti tra segmenti (intervallo di partizioni). Aggiunte ottimizzazioni speciali per i database partizionati alle visualizzazioni e agli indici di Mango;
  • Implementato modalità di divisione automatica durante la segmentazione (sharding). Nel database è ora possibile ridistribuire i dati tra i segmenti, tenendo conto di un aumento del valore del fattore q utilizzato per determinare il livello di ripartizione;
  • Aggiunto da sottosistema ken per l'indicizzazione automatica in background e il mantenimento aggiornato degli indici secondari (JavaScript, Mango, indici di ricerca testuale) senza avviarne esplicitamente le operazioni di costruzione;
  • Il processo smoosh utilizzato per il confezionamento automatico del database è stato completamente riscritto;
  • Nuovo sottosistema proposto Coda IO, utilizzato per modificare la priorità I/O per determinate operazioni;
  • Implementato un sistema di test di regressione;
  • Aggiunto supporto ufficiale per le piattaforme arm64v8 (aarch64) e ppc64le (ppc64el);
  • Aggiunto supporto per il collegamento con il motore JavaScript SpiderMonkey 1.8.5 (ramo ESR di Firefox 60) con supporto migliorato per ES5, ES6 ed ES2016+;
  • Motore di ricerca incluso Dreyfus basato su Lucene, che semplifica notevolmente l'implementazione di un motore di ricerca basato su CouchDB;
  • Aggiunto backend per la registrazione utilizzando systemd-journald;
  • Aggiunta l'impostazione “[couchdb] single_node”, quando impostata, CouchDB creerà automaticamente i database di sistema se mancano;
  • Le prestazioni del processo couch_server sono state ottimizzate;
  • Il programma di installazione per la piattaforma Windows è stato notevolmente migliorato;
  • Le visualizzazioni sono limitate a 2^28 (268435456) risultati. Questo limite può essere configurato separatamente per le viste regolari e segmentate utilizzando le opzioni query_limit e partition_query_limit nella sezione “[query_server_config]”;
  • È stata rimossa un'interfaccia separata di gestione del nodo locale HTTP, avviata sulla porta di rete 5986, le cui funzionalità sono ora disponibili tramite l'interfaccia comune di gestione del cluster;
  • La dimensione massima del documento è stata ridotta a 8 MB, il che potrebbe causare problemi con la replica dei dati dai server più vecchi dopo l'aggiornamento a CouchDB 3.0. Per aumentare il limite, puoi utilizzare l'impostazione “[couchdb] max_document_size”;
  • È stata effettuata un'importante pulizia delle funzionalità obsolete, come le chiamate _replicator e _external, i campi disk_size e data_size e l'opzione delay_commits;
  • L'esecuzione di CouchDB ora richiede Erlang/OTP 20.3.8.11+, 21.2.3+ o 22.0.5. Teoricamente la funzionalità con il ramo Erlang/OTP 19 è preservata, ma è coperta da test.

Ricordiamo che CouchDB memorizza i dati in un formato di elenco ordinato e consente la replica parziale dei dati tra più database in modalità master-master con rilevamento e risoluzione simultanei di situazioni di conflitto. Ogni server archivia il proprio set locale di dati, sincronizzato con altri server, che possono essere portati offline e replicare periodicamente le modifiche. In particolare, questa funzionalità rende CouchDB una soluzione interessante per sincronizzare le impostazioni del programma tra diversi computer. Soluzioni basate su CouchDB sono state implementate in aziende come BBC, Apple e CERN.

Le query CouchDB e l'indicizzazione dei dati possono essere eseguite secondo il paradigma MapReduce, utilizzando JavaScript per generare la logica di campionamento dei dati. Il nucleo del sistema è scritto in Erlang, che è ottimizzato per la creazione di sistemi distribuiti che servono più richieste parallele. Il server di visualizzazione è scritto in C e si basa sul motore JavaScript del progetto Mozilla. L'accesso al database viene effettuato utilizzando il protocollo HTTP utilizzando un'API JSON RESTful, che consente di accedere ai dati, anche dalle applicazioni web in esecuzione nel browser.

L'unità di archiviazione dati è un documento che ha un identificatore univoco, una versione e contiene un insieme arbitrario di campi denominati nel formato chiave/valore. Per organizzare un insieme pseudo-strutturato di dati provenienti da documenti arbitrari (aggregazione e selezione), viene utilizzato il concetto di formazione di viste (viste), per definire quale linguaggio JavaScript viene utilizzato. JavaScript può anche definire funzioni per convalidare i dati quando si aggiungono nuovi documenti all'interno di una vista particolare.

Fonte: opennet.ru

Aggiungi un commento