Rilascio del DBMS documentale Apache CouchDB 3.0

Si è tenuto rilascio di un database distribuito orientato ai documenti Apache CouchDB 3.0, appartenente alla classe dei sistemi NoSQL. I testi sorgente del progetto sono distribuiti sotto licenza Apache 2.0.

Miglioramenti, implementati in Apache CouchDB 3.0:

  • È stata potenziata la sicurezza nella configurazione predefinita.
    All'avvio deve ora essere definito obbligatoriamente un utente admin, senza il quale il server terminerà la sua operazione con un errore (consente di risolvere problemi di avvio dei server che, per disattenzione, lasciano l'accesso senza autenticazione). Per le chiamate a «/_all_dbs» ora è necessaria la presenza di diritti di amministrazione, e tutti i database per impostazione predefinita sono creati accessibili solo all'utente admin (i parametri di accesso possono essere modificati tramite l'oggetto «_security»). È vietata per impostazione predefinita la modifica degli oggetti nel database _users;
  • È stata aggiunta possibilità di creare database segmentati (partizionati) definiti dall'utente, che consentono di definire regole proprie per la distribuzione dei documenti nei segmenti (shard range). Sono state aggiunte ottimizzazioni speciali per i database segmentati nelle visualizzazioni e negli indici Mango;
  • Realizzato modalità di suddivisione automatica durante la segmentazione (sharding). Nei database è ora possibile ridistribuire i dati tra i segmenti tenendo conto dell'aumento del valore del fattore q, utilizzato per determinare il livello di divisione;
  • È stata aggiunta sottosistema ken per indicizzazione automatica in background e per mantenere aggiornati gli indici secondari (JavaScript, Mango, indici per la ricerca testuale) senza l'avvio esplicito delle operazioni di costruzione;
  • Completamente riscritto il processo smoosh, utilizzato per l'imballaggio automatico del database;
  • Proposta una nuova sottosistema IO Queue, utilizzato per modificare la priorità di input/output per determinate operazioni;
  • Implementato un sistema di test regressivi;
  • Aggiunta la supporto ufficiale per le piattaforme arm64v8 (aarch64) e ppc64le (ppc64el);
  • Aggiunto supporto per il legame con il motore JavaScript SpiderMonkey 1.8.5 (ramo ESR di Firefox 60) con supporto migliorato per ES5, ES6 e ES2016+;
  • Incluso il motore di ricerca Dreyfus basato su Lucene, che semplifica notevolmente il deployment di un sistema di ricerca basato su CouchDB;
  • Aggiunto un backend per la registrazione dei log utilizzando systemd-journald;
  • Aggiunta l'impostazione «[couchdb] single_node» che, se impostata, permetterà a CouchDB di creare automaticamente i database di sistema, se assenti;
  • È stata ottimizzata la performance del processo couch_server;
  • Significativo miglioramento dell'installer per la piattaforma Windows;
  • La dimensione delle viste è limitata a 2^28 (268435456) risultati. Questo limite può essere configurato separatamente per le viste normali e segmentate tramite le opzioni query_limit e partition_query_limit nella sezione «[query_server_config]»;
  • Rimosso l'interfaccia HTTP di gestione del nodo locale, in esecuzione sulla porta di rete 5986, la cui funzionalità è ora disponibile tramite un'interfaccia di gestione del cluster comune;
  • La dimensione massima del documento è stata ridotta a 8 MB, il che potrebbe causare problemi di replicazione dei dati dai vecchi server dopo l'aggiornamento a CouchDB 3.0. Per aumentare il limite, è possibile utilizzare l'impostazione «[couchdb] max_document_size»;
  • Pulizia sostanziale delle funzionalità obsolete, come le chiamate _replicator e _external, i campi disk_size e data_size, l'opzione delayed_commits;
  • Per eseguire CouchDB ora è richiesta Erlang/OTP 20.3.8.11+, 21.2.3+ o 22.0.5. Teoricamente, la compatibilità è mantenuta con il ramo Erlang/OTP 19, ma è coperta da test.

Ricordiamo che CouchDB memorizza i dati in formato elenco ordinato e consente la replicazione parziale dei dati tra più database in modalità «master-master» con rilevamento e risoluzione simultanei delle situazioni di conflitto. Ogni server memorizza il proprio set di dati locale, sincronizzato con altri server, che possono essere messi in modalità offline e replicare periodicamente le modifiche. In particolare, questa funzionalità rende CouchDB una soluzione attraente per organizzare la sincronizzazione delle impostazioni dei programmi tra diversi computer. Le soluzioni basate su CouchDB sono state implementate in aziende come BBC, Apple e CERN.

Le richieste a CouchDB e l'indicizzazione dei dati possono essere effettuate secondo la paradigma MapReduce, utilizzando per la formazione della logica di estrazione dati il linguaggio JavaScript. Il nucleo del sistema è scritto in linguaggio Erlang, ottimizzato per la creazione di servizi che gestiscono molteplici richieste parallele in sistemi distribuiti. Il server di visualizzazione è scritto in linguaggio C e si basa sul motore JavaScript del progetto Mozilla. L'accesso al database avviene tramite il protocollo HTTP utilizzando l'API RESTful JSON, consentendo l'accesso ai dati anche dalle applicazioni web eseguite nel browser.

In qualità di unità di memorizzazione dei dati viene utilizzato un documento, che ha un identificatore unico, una versione e contiene un insieme arbitrario di campi nominati nel formato chiave/valore. Per organizzare un insieme di dati pseudo-strutturato a partire da documenti arbitrari (aggregazione e formazione di campioni) viene applicato il concetto di creazione di viste (view), per la quale viene utilizzato il linguaggio JavaScript. In JavaScript possono anche essere definite funzioni per verificare la correttezza dei dati durante l'aggiunta di nuovi documenti all'interno di una vista specifica.

Fonte: opennet.ru

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