publicado lançamento de um SGBD multifuncional Arango DB 3.6, que fornece modelos flexíveis para armazenar documentos, gráficos e dados de valores-chave. O trabalho com o banco de dados é realizado por meio de uma linguagem de consulta semelhante a SQL AQL ou através de extensões especiais em JavaScript. Os métodos de armazenamento de dados são compatíveis com ACID (atomicidade, consistência, isolamento, durabilidade), suportam transações e fornecem escalabilidade horizontal e vertical. O SGBD pode ser gerenciado através de uma interface web ou de um cliente de console Arango SH. Código ArangoDB distribuído por licenciado sob Apache 2. O projeto é escrito em C e JavaScript.
Principais recursos do ArangoDB:
A capacidade de dispensar a definição de um esquema de armazenamento de dados (sem esquema) - os dados são estruturados na forma de documentos nos quais os metadados e as informações sobre a estrutura são separados dos dados do usuário;
Suporte para utilização do ArangoDB como servidor para aplicações web em JavaScript com possibilidade de acesso ao banco de dados via REST/Web API;
Utilização de JavaScript para aplicações de navegador que acessam o banco de dados e para manipuladores executados no lado do SGBD;
Arquitetura multithread que distribui a carga por todos os núcleos da CPU;
Um modelo flexível de armazenamento de dados que pode combinar pares de valores-chave, documentos e parâmetros que definem relacionamentos entre registros (fornece ferramentas para atravessar vértices de gráficos);
Diferentes modelos de representação de dados (documentos, gráficos e pares chave-valor) podem ser misturados em uma consulta, o que simplifica a agregação de dados heterogêneos;
Suporte para consultas de mesclagem (JOIN);
A capacidade de selecionar o tipo de índice que corresponde às tarefas que estão sendo resolvidas (por exemplo, você pode usar o índice para pesquisa de texto completo);
Confiabilidade personalizável: o próprio aplicativo pode determinar o que é mais importante para ele: maior confiabilidade ou maior desempenho;
Armazenamento eficiente que aproveita ao máximo o hardware moderno (como SSDs) e pode usar grandes caches;
Transações: a capacidade de executar consultas em vários documentos ou coleções de uma só vez com consistência e isolamento de transações opcionais;
Suporte para replicação e sharding: capacidade de criar configurações master-slave e distribuir conjuntos de dados para diferentes servidores dependendo de um determinado recurso;
Uma estrutura JavaScript é fornecida para criar microsserviços Foxx, executado dentro de um servidor SGBD com acesso direto aos dados.
O desempenho das subconsultas, bem como das operações UPDATE e REPLACE foi otimizado;
Foi implementada a capacidade de paralelizar a execução de consultas AQL, o que permite reduzir o tempo de coleta de dados distribuídos em diferentes nós do cluster;
Implementada a materialização diferida de documentos, o que permite em algumas situações eliminar a necessidade de recuperação total de documentos irrelevantes;
Na digitalização de documentos, é garantido o descarte antecipado de documentos que não correspondam ao filtro especificado;
O mecanismo de pesquisa de texto completo ArangoSearch foi aprimorado, suportando classificação com base na similaridade de dados. Adicionado suporte ao analisador para preenchimento automático de consultas, funções TOKENS() e PHRASE() implementadas para gerar consultas de pesquisa dinamicamente;
Adicionada configuração maxRuntime para limitar seletivamente o tempo de execução da consulta;
Adicionada opção “—query.optimizer-rules” para controlar a ativação de determinadas otimizações no processamento de consultas;
As possibilidades de organização do funcionamento do cluster foram ampliadas. Adicionada opção “—cluster.upgrade” para selecionar o modo de atualização para nós no cluster;
Adicionado suporte para TLS 1.3 para criptografar o canal de comunicação entre o cliente e o servidor (por padrão o cliente continua usando o TLS 1.2).