Lanzamiento del DBMS orientado a documentos Apache CouchDB 3.0

tuvo lugar lanzamiento de una base de datos distribuida orientada a documentos Apache CouchDB 3.0, perteneciente a la clase de sistemas NoSQL. Fuentes del proyecto propagar licenciado bajo Apache 2.0.

Mejorasimplementado en Apache CouchDB 3.0:

  • La configuración predeterminada ha sido mejorada.
    Al iniciar ahora se debe definir el usuario administrador, sin el cual el servidor finalizará con un error (le permite resolver problemas al iniciar servidores que inadvertidamente dejan el acceso sin autenticación). Las llamadas a "/_all_dbs" ahora requieren derechos de administrador, y todas las bases de datos se crean de forma predeterminada y solo son accesibles para el usuario administrador (los parámetros de acceso se pueden cambiar a través del objeto "_security"). De forma predeterminada, está prohibido editar objetos en la base de datos _users;

  • Añadido por la capacidad de crear bases de datos segmentadas (particionadas) definidas por el usuario, lo que permite definir sus propias reglas para distribuir documentos entre segmentos (rango de fragmentos). Se agregaron optimizaciones especiales para bases de datos fragmentadas a las vistas e índices de Mango;
  • Implementado modo de división automática durante la segmentación (fragmentación). En la base de datos, ahora es posible redistribuir datos entre segmentos, teniendo en cuenta un aumento en el valor del factor q utilizado para determinar el nivel de desglose;
  • Añadido por subsistema ken para indexación automática en segundo plano y mantener actualizados los índices secundarios (JavaScript, Mango, índices de búsqueda de texto) sin iniciar explícitamente sus operaciones de construcción;
  • El proceso smoosh utilizado para el empaquetado automático de bases de datos se ha reescrito por completo;
  • Nuevo subsistema propuesto Cola de E/S, utilizado para cambiar la prioridad de E/S para ciertas operaciones;
  • Implementó un sistema de pruebas de regresión;
  • Se agregó soporte oficial para las plataformas arm64v8 (aarch64) y ppc64le (ppc64el);
  • Se agregó soporte para vincular con el motor JavaScript SpiderMonkey 1.8.5 (rama ESR de Firefox 60) con soporte mejorado para ES5, ES6 y ES2016+;
  • Motor de búsqueda incluido Dreyfus basado en Lucene, que simplifica enormemente la implementación de un motor de búsqueda basado en CouchDB;
  • Se agregó backend para iniciar sesión usando systemd-journald;
  • Se agregó la configuración “[couchdb] single_node”. Cuando se establece, CouchDB creará automáticamente bases de datos del sistema si faltan;
  • Se ha optimizado el rendimiento del proceso Couch_server;
  • Se ha mejorado significativamente el instalador para la plataforma Windows;
  • Las vistas están limitadas a 2^28 (268435456) resultados. Este límite se puede configurar por separado para vistas regulares y segmentadas usando las opciones query_limit y particion_query_limit en la sección “[query_server_config]”;
  • Se eliminó una interfaz de administración de nodos locales HTTP separada, iniciada en el puerto de red 5986, cuya funcionalidad ahora está disponible a través de la interfaz de administración de clústeres común;
  • El tamaño máximo del documento se ha reducido a 8 MB, lo que puede causar 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 utilizar la configuración “[couchdb] max_document_size”;
  • Se ha llevado a cabo una limpieza importante de funciones obsoletas, como las llamadas _replicator y _external, los campos disk_size y data_size y la opción de compromisos retrasados;
  • La ejecución de CouchDB ahora requiere Erlang/OTP 20.3.8.11+, 21.2.3+ o 22.0.5. Teóricamente, la funcionalidad con la rama Erlang/OTP 19 se conserva, pero está cubierta por pruebas.

Recordemos que CouchDB almacena datos en un formato de lista ordenada y permite la replicación parcial de datos entre varias bases de datos en modo maestro-maestro con detección y resolución simultánea de situaciones de conflicto. Cada servidor almacena su propio conjunto local de datos, sincronizados con otros servidores, que pueden desconectarse y replicar los cambios periódicamente. En particular, esta característica convierte a CouchDB en una solución atractiva para sincronizar la configuración del programa entre diferentes computadoras. Se han implementado soluciones basadas en CouchDB en empresas como la BBC, Apple y el CERN.

Las consultas de CouchDB y la indexación de datos se pueden realizar según el paradigma. MapReduce, utilizando JavaScript para generar lógica de muestreo de datos. El núcleo del sistema está escrito en Erlang, que está optimizado para crear sistemas distribuidos que atienden múltiples solicitudes paralelas. El servidor de visualización está escrito en C y se basa en el motor JavaScript del proyecto Mozilla. El acceso a la base de datos se realiza mediante el protocolo HTTP utilizando una API RESTful JSON, que le permite acceder a datos, incluso desde aplicaciones web que se ejecutan en el navegador.

La unidad de almacenamiento de datos es un documento que tiene un identificador y una versión únicos y contiene un conjunto arbitrario de campos con nombre en el formato clave/valor. Para organizar un conjunto pseudoestructurado de datos a partir de documentos arbitrarios (agregación y selección), se utiliza el concepto de formar vistas (vistas), para definir cuál se utiliza el lenguaje JavaScript. JavaScript también puede definir funciones para validar datos al agregar nuevos documentos dentro de una vista particular.

Fuente: opennet.ru

Añadir un comentario