Lançamento do DBMS Apache CouchDB 3.0 orientado a documentos

aconteceu lançamento de um banco de dados distribuído orientado a documentos Apache CouchDB 3.0, pertencente à classe de sistemas NoSQL. Fontes do projeto espalhar licenciado sob Apache 2.0.

Melhoriasimplementado no Apache CouchDB 3.0:

  • A configuração padrão foi aprimorada.
    Ao iniciar, deve agora ser definido o usuário admin, sem o qual o servidor encerrará com erro (permite resolver problemas de inicialização de servidores que inadvertidamente deixam o acesso sem autenticação). Chamadas para "/_all_dbs" agora requerem direitos de administrador, e todos os bancos de dados são criados por padrão, acessíveis apenas ao usuário administrador (os parâmetros de acesso podem ser alterados através do objeto "_security"). Por padrão, a edição de objetos no banco de dados _users é proibida;

  • Adicionado por a capacidade de criar bancos de dados segmentados (particionados) definidos pelo usuário, possibilitando definir suas próprias regras para distribuição de documentos entre segmentos (intervalo de fragmentos). Adicionadas otimizações especiais para bancos de dados fragmentados às visualizações e índices do Mango;
  • Implementado modo de divisão automática durante a segmentação (fragmentação). Na base de dados é agora possível redistribuir os dados entre segmentos, tendo em conta o aumento do valor do factor q utilizado para determinar o nível de desagregação;
  • Adicionado por subsistema ken para indexação automática em segundo plano e manutenção de índices secundários (JavaScript, Mango, índices de pesquisa de texto) atualizados sem iniciar explicitamente suas operações de construção;
  • O processo smoosh usado para empacotamento automático de banco de dados foi completamente reescrito;
  • Novo subsistema proposto Fila de E/S, usado para alterar a prioridade de E/S para determinadas operações;
  • Implementei um sistema de testes de regressão;
  • Adicionado suporte oficial para plataformas arm64v8 (aarch64) e ppc64le (ppc64el);
  • Adicionado suporte para vinculação com o mecanismo JavaScript SpiderMonkey 1.8.5 (ramo ESR do Firefox 60) com suporte aprimorado para ES5, ES6 e ES2016+;
  • Mecanismo de pesquisa incluído Dreyfus baseado em Lucene, que simplifica muito a implantação de um mecanismo de busca baseado em CouchDB;
  • Adicionado back-end para registro usando systemd-journald;
  • Adicionada a configuração “[couchdb] single_node”, quando definida, o CouchDB criará automaticamente bancos de dados do sistema se eles estiverem faltando;
  • O desempenho do processo couch_server foi otimizado;
  • O instalador da plataforma Windows foi significativamente melhorado;
  • As visualizações são limitadas a 2 ^ 28 (268435456) resultados. Este limite pode ser configurado separadamente para visualizações regulares e segmentadas usando as opções query_limit e partição_query_limit na seção “[query_server_config]”;
  • Uma interface de gerenciamento de nó local HTTP separada, iniciada na porta de rede 5986, foi removida, cuja funcionalidade agora está disponível por meio da interface comum de gerenciamento de cluster;
  • O tamanho máximo do documento foi reduzido para 8 MB, o que pode causar problemas na replicação de dados de servidores mais antigos após a atualização para o CouchDB 3.0. Para aumentar o limite, você pode usar a configuração “[couchdb] max_document_size”;
  • Foi realizada uma grande limpeza de recursos obsoletos, como as chamadas _replicator e _external, os campos disk_size e data_size e a opção delay_commits;
  • A execução do CouchDB agora requer Erlang/OTP 20.3.8.11+, 21.2.3+ ou 22.0.5. Teoricamente, a funcionalidade com o branch Erlang/OTP 19 é preservada, mas é coberta por testes.

Lembremos que o CouchDB armazena dados em formato de lista ordenada e permite a replicação parcial de dados entre vários bancos de dados em modo mestre-mestre com detecção e resolução simultânea de situações de conflito. Cada servidor armazena seu próprio conjunto local de dados, sincronizados com outros servidores, que podem ser colocados offline e replicar alterações periodicamente. Em particular, esse recurso torna o CouchDB uma solução atraente para sincronizar configurações de programas entre diferentes computadores. Soluções baseadas no CouchDB foram implementadas em empresas como BBC, Apple e CERN.

Consultas do CouchDB e indexação de dados podem ser realizadas de acordo com o paradigma MapaReduzir, usando JavaScript para gerar lógica de amostragem de dados. O núcleo do sistema é escrito em Erlang, que é otimizado para a criação de sistemas distribuídos que atendem a múltiplas solicitações paralelas. O servidor de visualização é escrito em C e é baseado no mecanismo JavaScript do projeto Mozilla. O acesso ao banco de dados é realizado através do protocolo HTTP por meio de uma API RESTful JSON, que permite acessar dados, inclusive de aplicações web executadas no navegador.

A unidade de armazenamento de dados é um documento que possui um identificador e versão exclusivos e contém um conjunto arbitrário de campos nomeados no formato chave/valor. Para organizar um conjunto pseudoestruturado de dados a partir de documentos arbitrários (agregação e seleção), utiliza-se o conceito de formação de visualizações (views), para definir qual a linguagem JavaScript será utilizada. JavaScript também pode definir funções para validar dados ao adicionar novos documentos em uma visualização específica.

Fonte: opennet.ru

Adicionar um comentário