Ya fue liberada la nueva versión de Apache CouchDB 3.0 y estos son sus cambios
Se acaba de presentar el lanzamiento de la nueva versión de Apache CouchDB 3.0, la cual es una base de datos distribuida orientada a documentos, perteneciente a la clase de sistemas NoSQL. CouchDB se caracteriza por almacenar datos en un formato de lista ordenada y permite la replicación parcial de datos entre múltiples bases de datos en el modo maestro-maestro con la detección y resolución simultáneas de situaciones de conflicto.
Cada servidor almacena su propio conjunto de datos local, sincronizado con otros servidores, que pueden desconectarse y replicar periódicamente los cambios. En particular, esta característica hace de CouchDB una solución atractiva para organizar la sincronización de la configuración del programa entre diferentes computadoras.
Las soluciones basadas en CouchDB han sido implementadas por compañías como BBC, Apple y CERN.
Las consultas CouchDB y la indexación de datos se pueden realizar de acuerdo con el paradigma MapReduce usando JavaScript para generar la lógica de muestreo de datos.
El núcleo del sistema está escrito en el lenguaje Erlang, que está optimizado para crear sistemas distribuidos que atienden muchas solicitudes paralelas. El servidor de vista está escrito en lenguaje C y está basado en el motor JavaScript del proyecto Mozilla.
El acceso a la base de datos se realiza mediante el protocolo HTTP utilizando la API RESTful JSON, que le permite acceder a datos, incluso desde aplicaciones web que se ejecutan en el navegador.
Un documento que tiene un identificador único, una versión y que contiene un conjunto arbitrario de campos con nombre en el formato de clave/valor actúa como una unidad de almacenamiento de datos. P
Para organizar un conjunto de datos pseudoestructurados a partir de documentos arbitrarios (agregación y muestreo), se utiliza el concepto de formar vistas, que se definen mediante JavaScript. En JavaScript, también puede definir funciones para validar datos al agregar nuevos documentos dentro de una vista específica.
Novedades de Apache CouchDB 3.0
En esta nueva versión se destaca una protección mejorada en la configuración predeterminada. Al iniciar, el usuario administrador ahora debe estar definido, sin lo cual el servidor finalizará su operación con un error.
Para acceder a las llamadas a “/ _all_dbs” ahora se deben tener derechos de administrador y todas las bases de datos se crean por defecto solo para el usuario administrador (se pueden cambiar a través del objeto “_security”), además de que está prohibido por defecto editar objetos en la base de datos _users.
Se agregó la capacidad de crear bases de datos segmentadas (particionadas) definidas por el usuario, lo que le permite definir sus propias reglas para distribuir documentos por segmentos (rango de fragmentos). Se han agregado optimizaciones especiales para bases de datos segmentadas a las vistas e índices.
También podremos encontrar la implementación de separación automática durante la segmentación (fragmentación). En la base de datos, ahora es posible redistribuir datos por segmentos, teniendo en cuenta el aumento en el factor q utilizado para determinar el nivel de desglose.
El subsistema ken se ha agregado para la indexación automática en segundo plano y mantener actualizados los índices secundarios sin iniciar explícitamente operaciones para construirlos.
El tamaño máximo del documento se reduce a 8 MB, lo que puede ocasionar problemas con la replicación de datos de servidores más antiguos después de actualizar a CouchDB 3.0. Para aumentar el límite, puede usar la configuración “[couchdb] max_document_size”.
De los demás cambios que se mencionan:
- Optimización del rendimiento del proceso couch_server.
- Instalador significativamente mejorado para la plataforma Windows.
- El proceso smoosh utilizado para el empaquetado automático de la base de datos se ha reescrito por completo.
- Se propone un nuevo subsistema de cola de E / S, que se utiliza para cambiar la prioridad de E / S para ciertas operaciones.
- Implementado un sistema de prueba de regresión.
- Se ha agregado soporte oficial para las plataformas arm64v8 (aarch64) y ppc64le (ppc64el).
- Se agregó soporte para vincular al motor JavaScript SpiderMonkey 1.8.5 (rama ESR de Firefox 60) con soporte mejorado para ES5, ES6 y ES2016 +.
- La estructura incluye un motor de búsqueda Dreyfus basado en Lucene, que puede simplificar enormemente la implementación de un motor de búsqueda basado en CouchDB.
- Se agregó backend para iniciar sesión utilizando systemd-journald.