S'acaba de presentar el llançament de la nova versió d' Apache CouchDB 3.0, que és una base de dades distribuïda orientada a documents , pertanyent a la classe de sistemes NoSQL. CouchDB es caracteritza per emmagatzemar dades en un format de llista ordenada i permet la replicació parcial de dades entre múltiples bases de dades en el mode mestre-mestre amb la detecció i la resolució simultànies de situacions de conflicte.
Cada servidor emmagatzema el seu propi conjunt de dades local, sincronitzat amb altres servidors, que es poden desconnectar i replicar periòdicament els canvis. En particular, aquesta característica fa de CouchDB una solució atractiva per organitzar la sincronització de la configuració del programa entre diferents ordinadors.
Les solucions basades en CouchDB han estat implementades per companyies com BBC, Apple i CERN.
Les consultes CouchDB i la indexació de dades es poden realitzar d'acord amb el paradigma MapReduce usant estigui habilitat per a generar la lògica de mostreig de dades.
El nucli del sistema està escrit en el llenguatge Erlang , que està optimitzat per crear sistemes distribuïts que atenen moltes sol·licituds paral·leles. El servidor de vista està escrit en llenguatge C i es basa en el motor JavaScript del projecte Mozilla.
L'accés a la base de dades es fa mitjançant el protocol HTTP utilitzant l'API RESTful JSON, que us permet accedir a dades, fins i tot des d'aplicacions web que s'executen al navegador.
Un document que té un identificador únic, una versió i que conté un conjunt arbitrari de camps amb nom en el format de clau / valor actua com una unitat d'emmagatzematge de dades. P
Per organitzar un conjunt de dades pseudoestructurados a partir de documents arbitraris (agregació i mostreig), s'utilitza el concepte de formar vistes, que es defineixen mitjançant JavaScript. En JavaScript, també pot definir funcions per validar dades a l'afegir nous documents dins d'una vista específica.
Novetats d'Apache CouchDB 3.0
En aquesta nova versió es destaca una protecció millorada en la configuració predeterminada . En iniciar, l'usuari administrador ara ha d'estar definit, sense la qual cosa el servidor finalitzarà la vostra operació amb un error.
Per accedir a les trucades a / _all_dbs ara cal tenir drets d'administrador i totes les bases de dades es creen per defecte només per a l'usuari administrador (es poden canviar a través de l'objecte _security), a més que està prohibit per defecte editar objectes a la base de dades _users.
S'ha afegit la capacitat de crear bases de dades segmentades (particionades) definides per l'usuari, cosa que us permet definir les vostres pròpies regles per distribuir documents per segments (rang de fragments). S'han afegit optimitzacions especials per a bases de dades segmentades a les vistes i els índexs.
També podrem trobar la implementació de separació automàtica durant la segmentació (fragmentació). A la base de dades, ara és possible redistribuir dades per segments, tenint en compte l'augment del factor q utilitzat per determinar el nivell de desglossament.
El subsistema ken s'ha afegit per a la indexació automàtica en segon pla i mantenir actualitzats els índexs secundaris sense iniciar explícitament operacions per construir-los.
La mida màxima del document es redueix a 8 MB, cosa que pot ocasionar problemes amb la replicació de dades de servidors més antics després d'actualitzar a CouchDB 3.0. Per augmentar el límit, podeu utilitzar la configuració «[couchdb] max_document_size».
Dels altres canvis que s'esmenten:
- Optimització de l'rendiment de l'procés couch_server.
- Instal·lador significativament millorat per a la plataforma Windows.
- El procés smoosh utilitzat per a l'empaquetat automàtic de la base de dades s'ha reescrit per complet.
- Es proposa un nou subsistema de cua d'E / S, que s'utilitza per canviar la prioritat d'E / S per a certes operacions.
- Implementat un sistema de prova de regressió.
- S'ha afegit suport oficial per a les plataformes arm64v8 (aarch64) i ppc64le (ppc64el).
- Es va agregar suport per vincular el motor JavaScript SpiderMonkey 1.8.5 (branca ESR del Firefox 60) amb suport millorat per ES5, ES6 i ES2016 +.
- L'estructura inclou un motor de cerca Dreyfus basat en Lucene, que pot simplificar enormement la implementació d'un motor de cerca basat en CouchDB.
- Es va agregar backend per iniciar sessió utilitzant systemd-journald.