publicado lanzamiento de un DBMS multipropósito ArangoDB 3.6, que proporciona modelos flexibles para almacenar documentos, gráficos y datos de valores clave. El trabajo con la base de datos se realiza a través de un lenguaje de consulta similar a SQL. AQL o mediante extensiones especiales en JavaScript. Los métodos de almacenamiento de datos cumplen con ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad), admiten transacciones y brindan escalabilidad tanto horizontal como vertical. El DBMS se puede administrar a través de una interfaz web o un cliente de consola. Arango SH. Código ArangoDB distribuido por con licencia Apache 2. El proyecto está escrito en C y JavaScript.
Características clave de ArangoDB:
La capacidad de prescindir de definir un esquema de almacenamiento de datos (sin esquema): los datos se estructuran en forma de documentos en los que los metadatos y la información sobre la estructura están separados de los datos del usuario;
Soporte para usar ArangoDB como servidor para aplicaciones web en JavaScript con la capacidad de acceder a la base de datos a través de REST/Web API;
Usar JavaScript para aplicaciones de navegador que acceden a la base de datos y para controladores ejecutados en el lado DBMS;
Arquitectura multiproceso que distribuye la carga entre todos los núcleos de la CPU;
Un modelo de almacenamiento de datos flexible que puede combinar pares clave-valor, documentos y parámetros que definen las relaciones entre registros (proporciona herramientas para atravesar los vértices del gráfico);
Se pueden combinar diferentes modelos de representación de datos (documentos, gráficos y pares clave-valor) en una consulta, lo que simplifica la agregación de datos heterogéneos;
Soporte para consultas de fusión (JOIN);
La capacidad de seleccionar el tipo de índice que corresponde a las tareas que se están resolviendo (por ejemplo, puede utilizar el índice para búsqueda de texto completo);
Fiabilidad personalizable: la propia aplicación puede determinar qué es más importante para ella: mayor fiabilidad o mayor rendimiento;
Almacenamiento eficiente que aprovecha al máximo el hardware moderno (como los SSD) y puede utilizar cachés de gran tamaño;
Transacciones: la capacidad de ejecutar consultas en múltiples documentos o colecciones a la vez con coherencia y aislamiento de transacciones opcionales;
Soporte para replicación y fragmentación: la capacidad de crear configuraciones maestro-esclavo y distribuir conjuntos de datos a diferentes servidores según una determinada característica;
Se proporciona un marco de JavaScript para crear microservicios. Foxx, ejecutado dentro de un servidor DBMS con acceso directo a los datos.
Se ha optimizado el rendimiento de las subconsultas, así como las operaciones ACTUALIZAR y REEMPLAZAR;
Se ha implementado la capacidad de paralelizar la ejecución de consultas AQL, lo que permite reducir el tiempo de recolección de datos distribuidos en diferentes nodos del cluster;
Se implementó la materialización retrasada de documentos, lo que permite en algunas situaciones eliminar la necesidad de recuperar por completo documentos irrelevantes;
Al escanear documentos, se garantiza el descarte temprano de los documentos que no coinciden con el filtro especificado;
Se ha mejorado el motor de búsqueda de texto completo ArangoSearch, lo que admite clasificaciones basadas en la similitud de datos. Se agregó soporte de analizador para autocompletar consultas, funciones TOKENS() y PHRASE() implementadas para generar consultas de búsqueda dinámicamente;
Se agregó la configuración maxRuntime para limitar selectivamente el tiempo de ejecución de la consulta;
Se agregó la opción “—query.optimizer-rules” para controlar la activación de ciertas optimizaciones al procesar consultas;
Se han ampliado las posibilidades de organizar el funcionamiento del cluster. Se agregó la opción “—cluster.upgrade” para seleccionar el modo de actualización de los nodos en el clúster;
Se agregó soporte para TLS 1.3 para cifrar el canal de comunicación entre el cliente y el servidor (de forma predeterminada, el cliente continúa usando TLS 1.2).