lançamento de um SGBD multifuncional , oferecendo modelos flexíveis para armazenamento de documentos, grafos e dados em formato chave-valor. O trabalho com o banco de dados é realizado por meio de uma linguagem de consulta semelhante ao SQL. ou por meio de extensões especiais em JavaScript. Os métodos de armazenamento de dados atendem aos requisitos ACID (Atomicidade, Consistência, Isolamento, Durabilidade), suportam transações e oferecem escalabilidade horizontal e vertical. O gerenciamento do SGBD pode ser feito por meio de uma interface web ou do cliente de console . O código do ArangoDB é licenciado sob a Apache 2. O projeto foi desenvolvido nas linguagens C e JavaScript.
Principais características do ArangoDB:
- Possibilidade de operar sem a definição de um esquema de armazenamento de dados (Schema-free) — 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 uso do ArangoDB como servidor para aplicações web em JavaScript com acesso ao banco de dados via REST/Web API;
- Uso 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 entre todos os núcleos da CPU;
- Modelo flexível de armazenamento de dados, onde pares chave-valor, documentos e parâmetros que definem relações entre registros podem ser combinados (são fornecidos recursos para percorrer vértices de grafos);
- Diferentes modelos de representação de dados (documentos, grafos e pares chave-valor) podem ser misturados em uma única consulta, facilitando a agregação de dados heterogêneos;
- Suporte a consultas com junções (JOIN);
- Possibilidade de escolher o tipo de índice que se adequa às tarefas em questão (por exemplo, pode-se usar um índice para busca de texto completo);
- Confiabilidade personalizada: a aplicação pode determinar o que é mais importante para ela: maior confiabilidade ou maior desempenho;
- Armazenamento eficiente que tira proveito dos recursos de hardware modernos (por exemplo, SSDs) e pode utilizar caches grandes;
- Transações: possibilidade de executar consultas simultaneamente para vários documentos ou coleções com consistência e isolamento de transações opcionais;
- Suporte à replicação e sharding: possibilidade de criar configurações master-slave e distribuir conjuntos de dados em diferentes servidores com base em um critério específico;
- Um framework JavaScript é fornecido para a criação de microsserviços , executado dentro do servidor de SGBD com acesso direto aos dados.
, oferecidas na versão ArangoDB 3.6:
- A performance de subconsultas, bem como operações UPDATE e REPLACE, foi otimizada;
- Foi implementada a execução paralela de consultas AQL, o que reduz o tempo de coleta de dados distribuídos em diferentes nós do cluster;
- Foi implementada a materialização atrasada de documentos, permitindo em algumas situações eliminar a necessidade de extração completa de documentos irrelevantes;
- Durante a varredura de documentos, foi garantida a eliminação precoce de documentos que não atendem ao filtro especificado;
- O mecanismo de busca de texto completo ArangoSearch foi melhorado, suportando a classificação com base na similaridade dos dados. Adicionada a funcionalidade de analisador para autocompletar consultas, implementadas as funções TOKENS() e PHRASE() para formação dinâmica de consultas de pesquisa;
- Adicionada a configuração maxRuntime para limitar seletivamente o tempo de execução da consulta;
- Adicionada a opção "—query.optimizer-rules" para controlar a ativação de determinadas otimizações ao processar consultas;
- Ampliadas as capacidades para organização do funcionamento do cluster. Adicionada a opção "—cluster.upgrade" para selecionar o modo de atualização dos nós no cluster;
- Suporte adicionado ao TLS 1.3 para criptografar a comunicação entre cliente e servidor (por padrão, o cliente continua a usar TLS 1.2).
Fonte: opennet.ru
