Llançament del SGBD orientat a documents Apache CouchDB 3.0

tingué lloc llançament d'una base de dades distribuïda orientada a documents Apache CouchDB 3.0, pertanyent a la classe de sistemes NoSQL. Fonts del projecte propagació amb llicència d'Apache 2.0.

Milloresimplementat a Apache CouchDB 3.0:

  • S'ha millorat la configuració per defecte.
    A l'inici, ara s'ha de definir l'usuari administrador, sense el qual el servidor finalitzarà amb un error (permet resoldre problemes amb l'engegada de servidors que sense voler deixen l'accés sense autenticació). Les trucades a "/_all_dbs" ara requereixen drets administratius, i totes les bases de dades es creen per defecte només accessibles per l'usuari administrador (els paràmetres d'accés es poden canviar mitjançant l'objecte "_security"). Per defecte, l'edició d'objectes a la base de dades _users està prohibida;

  • Afegit la possibilitat de crear bases de dades segmentades (particionades) definides per l'usuari, que permeten definir les vostres pròpies regles per distribuir documents entre segments (interval de fragments). S'han afegit optimitzacions especials per a bases de dades fragmentades a les vistes i índexs de Mango;
  • Implementat mode de divisió automàtica durant la segmentació (sharding). A la base de dades, ara és possible redistribuir les dades entre segments, tenint en compte un augment del valor del factor q utilitzat per determinar el nivell de desglossament;
  • Afegit subsistema ken per a la indexació automàtica de fons i mantenir actualitzats índexs secundaris (JavaScript, Mango, índexs de cerca de text) sense iniciar explícitament les seves operacions de construcció;
  • El procés smoosh utilitzat per a l'embalatge automàtic de bases de dades s'ha reescrit completament;
  • Nou subsistema proposat Cua d'IO, utilitzat per canviar la prioritat d'E/S per a determinades operacions;
  • Implementat un sistema de proves de regressió;
  • S'ha afegit suport oficial per a les plataformes arm64v8 (aarch64) i ppc64le (ppc64el);
  • S'ha afegit suport per enllaçar amb el motor JavaScript SpiderMonkey 1.8.5 (branca ESR de Firefox 60) amb suport millorat per a ES5, ES6 i ES2016+;
  • Motor de cerca inclòs Dreyfus basat en Lucene, que simplifica molt el desplegament d'un cercador basat en CouchDB;
  • S'ha afegit el backend per registrar amb systemd-journald;
  • S'ha afegit la configuració "[couchdb] single_node", quan s'estableixi, CouchDB crearà automàticament bases de dades del sistema si falten;
  • S'ha optimitzat el rendiment del procés couch_server;
  • S'ha millorat significativament l'instal·lador de la plataforma Windows;
  • Les visualitzacions estan limitades a 2^28 (268435456) resultats. Aquest límit es pot configurar per separat per a visualitzacions normals i segmentades mitjançant les opcions query_limit i partition_query_limit a la secció "[query_server_config]";
  • S'ha eliminat una interfície de gestió de nodes locals HTTP separada, llançada al port de xarxa 5986, la funcionalitat de la qual ara està disponible a través de la interfície de gestió de clúster comuna;
  • La mida màxima del document s'ha reduït a 8 MB, cosa que pot causar problemes amb la rèplica de dades des de servidors antics després d'actualitzar a CouchDB 3.0. Per augmentar el límit, podeu utilitzar la configuració "[couchdb] max_document_size";
  • S'ha dut a terme una neteja important de funcions obsoletes, com ara les trucades _replicator i _external, els camps disk_size i data_size i l'opció delayed_commits;
  • L'execució de CouchDB ara requereix Erlang/OTP 20.3.8.11+, 21.2.3+ o 22.0.5. Teòricament, la funcionalitat amb la branca Erlang/OTP 19 es conserva, però està coberta per proves.

Recordem que CouchDB emmagatzema dades en un format de llista ordenada i permet la replicació parcial de dades entre diverses bases de dades en un mode mestre-mestre amb detecció i resolució simultània de situacions de conflicte. Cada servidor emmagatzema el seu propi conjunt local de dades, sincronitzat amb altres servidors, que es poden posar fora de línia i replicar periòdicament els canvis. En particular, aquesta característica fa de CouchDB una solució atractiva per sincronitzar la configuració del programa entre diferents ordinadors. Les solucions basades en CouchDB s'han implementat en empreses com la BBC, Apple i el CERN.

Les consultes de CouchDB i la indexació de dades es poden realitzar segons el paradigma MapReduce, utilitzant JavaScript per generar la lògica de mostreig de dades. El nucli del sistema està escrit en Erlang, que està optimitzat per crear sistemes distribuïts que serveixin múltiples peticions paral·leles. El servidor de visualització està escrit en C i es basa en el motor JavaScript del projecte Mozilla. L'accés a la base de dades es realitza mitjançant el protocol HTTP mitjançant una API JSON RESTful, que permet accedir a les dades, incloses les aplicacions web que s'executen al navegador.

La unitat d'emmagatzematge de dades és un document que té un identificador únic, una versió i conté un conjunt arbitrari de camps amb nom en el format clau/valor. Per organitzar un conjunt pseudoestructurat de dades a partir de documents arbitraris (agregació i selecció), s'utilitza el concepte de formació de vistes (vistes), per definir quin llenguatge JavaScript s'utilitza. JavaScript també pot definir funcions per validar dades quan s'afegeixen nous documents dins d'una vista determinada.

Font: opennet.ru

Afegeix comentari