Rilascio del database documentale Apache CouchDB 3.0

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

Miglioramenti, realizzati in Apache CouchDB 3.0:

  • È stata potenziata la sicurezza nella configurazione predefinita.
    All'avvio ora deve essere necessariamente definito un utente admin, senza il quale il server terminerà il suo funzionamento con un errore (permette di risolvere i problemi di avvio dei server che, per distrazione, lasciano l'accesso senza autenticazione). Per accedere alle chiamate «/_all_dbs» è ora richiesta la presenza di diritti da amministratore, e tutti i database vengono creati per impostazione predefinita accessibili solo all'utente admin (le impostazioni di accesso possono essere modificate tramite l'oggetto «_security»). La modifica degli oggetti nel database _users è disabilitata per impostazione predefinita;
  • Aggiunto possibilità di creare database segmentati (partizionati) definiti dall'utente, che permettono di stabilire regole personalizzate per la distribuzione dei documenti nei segmenti (shard range). Sono state aggiunte ottimizzazioni speciali per i database segmentati nelle viste e negli indici Mango;
  • Implementato modalità di suddivisione automatica durante il partizionamento (sharding). Nei database è ora possibile ridistribuire i dati nei segmenti tenendo conto dell'aumento del valore del fattore q, utilizzato per determinare il livello di suddivisione;
  • Aggiunto sottosistema ken per l'indicizzazione automatica in background e il mantenimento aggiornato degli indici secondari (JavaScript, Mango, indici per la ricerca testuale) senza eseguire esplicitamente operazioni di costruzione;
  • Interamente riscritto il processo smoosh, utilizzato per il confezionamento automatico dei database;
  • È stato proposto un nuovo sottosistema IO Queue, utilizzato per modificare la priorità dell'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 motore JavaScript SpiderMonkey 1.8.5 (versione ESR di Firefox 60) con miglior supporto per ES5, ES6 e ES2016+;
  • Includere un 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 utilizzando systemd-journald;
  • Aggiunta l'impostazione «[couchdb] single_node» che, se attivata, creerà automaticamente i database di sistema se non presenti;
  • Ottimizzata la performance del processo couch_server;
  • Migliorato notevolmente l'installer per la piattaforma Windows;
  • Le dimensioni delle viste sono limitate a 2^28 (268435456) risultati. Questo limite può essere configurato separatamente per le viste normali e segmentate utilizzando le opzioni query_limit e partition_query_limit nella sezione «[query_server_config]»;
  • Rimosso l'interfaccia HTTP separata per la gestione del nodo locale, eseguita sulla porta di rete 5986, la cui funzionalità è ora disponibile attraverso l'interfaccia di gestione del cluster;
  • La dimensione massima del documento è stata ridotta a 8 MB, il che potrebbe causare problemi di replica dei dati dai vecchi server dopo l'aggiornamento a CouchDB 3.0. Per aumentare il limite è possibile utilizzare l'impostazione «[couchdb] max_document_size»;
  • Eseguito un ampio ripulimento delle funzionalità obsolete, come le chiamate _replicator e _external, i campi disk_size e data_size, l'opzione delayed_commits;
  • Per eseguire CouchDB ora è necessario Erlang/OTP 20.3.8.11+, 21.2.3+ o 22.0.5. Teoricamente è mantenuta la compatibilità con il ramo Erlang/OTP 19, ma è sottoposta a test.

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

Le richieste a CouchDB e l'indicizzazione dei dati possono essere eseguite secondo il paradigma MapReduce, utilizzando il linguaggio JavaScript per formare la logica di selezione dei dati. Il nucleo del sistema è scritto in Erlang, ottimizzato per la gestione di molteplici richieste parallele nei sistemi distribuiti. Il server delle viste è scritto in C e si basa sul motore JavaScript del progetto Mozilla. L'accesso ai database avviene tramite il protocollo HTTP usando un'API RESTful JSON, che consente l'accesso ai dati anche dalle applicazioni web eseguite nel browser.

Un documento con un identificatore unico, una versione e un insieme arbitrario di campi nominati nel formato chiave/valore funge da unità di archiviazione dei dati. Per organizzare un insieme di dati pseudo-strutturati basato su documenti arbitrari (aggregazione e campionamento), viene applicato il concetto di creazione di viste (view), per le quali viene utilizzato il linguaggio JavaScript. Con JavaScript è possibile definire anche funzioni per verificare la validità dei dati quando si aggiungono nuovi documenti all'interno di una vista specifica.

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