Banco de dados orientado a documentos MongoDB 6.0 disponível.

Após um ano de desenvolvimento, foi lançado o sistema de gerenciamento de banco de dados orientado a documentos MongoDB 6.0, que ocupa uma posição entre sistemas rápidos e escaláveis que manipulam dados no formato chave/valor e SGBDs relacionais, que são funcionais e convenientes para a formação de consultas. O código do MongoDB é escrito em C++ e é distribuído sob a licença SSPL, que é baseada na licença AGPLv3, mas não é aberto, pois contém uma exigência discriminatória de entrega sob a licença SSPL não apenas do código do próprio aplicativo, mas também dos códigos-fonte de todos os componentes envolvidos na prestação do serviço em nuvem.

O MongoDB suporta o armazenamento de documentos em um formato semelhante ao JSON, possui uma linguagem bastante flexível para a formação de consultas, pode criar índices para vários atributos armazenados, fornece eficientemente o armazenamento de grandes objetos binários, suporta o registro de operações de modificação e adição de dados ao banco de dados, pode operar de acordo com a paradigma Map/Reduce, e suporta replicação e a construção de configurações tolerantes a falhas.

O MongoDB possui ferramentas integradas para garantir o particionamento (distribuição do conjunto de dados entre servidores com base em uma chave específica), que, juntamente com a replicação, permitem a construção de um cluster de armazenamento horizontalmente escalável, no qual não há um único ponto de falha (a falha de qualquer nó não impacta o funcionamento do banco de dados), suportando recuperação automática após falhas e redistribuição de carga de um nó que falhou. A expansão do cluster ou a transformação de um servidor em cluster é realizada sem interromper o funcionamento do banco de dados, simplesmente adicionando novas máquinas.

Principais características da nova versão:

  • Foi implementada a capacidade de executar consultas que abrangem dados armazenados de forma criptografada (Queryable Encryption). Os dados são descriptografados do lado do usuário e, durante o processamento da consulta, permanecem criptografados (a consulta é realizada sobre os dados criptografados, sem a necessidade de descriptografá-los previamente). Na forma atual, apenas expressões de comparação são permitidas nas consultas, mas está previsto para o futuro adicionar suporte para verificação de intervalos, prefixos, sufixos, substrings e outras operações.
  • Expandiu-se as capacidades relacionadas ao armazenamento de dados na forma de coleções de séries temporais, otimizadas para armazenar cortes de valores de parâmetros registrados em intervalos de tempo específicos (tempo e conjunto de valores correspondentes a esse tempo). Por exemplo, a necessidade de armazenar esses dados surge em sistemas de monitoramento, plataformas financeiras e sistemas de levantamento de estado de sensores. Na nova versão, foi adicionada a possibilidade de usar índices secundários e compostos com coleções de dados em forma de séries temporais. Incluída também a suporte para anexar dados adicionais, como informações geográficas para considerar distância e localização. O desempenho na leitura, execução de consultas e ordenação foi aprimorado.
  • Novas ferramentas para rastreamento de mudanças foram adicionadas ("fluxos de mudanças", API Change Streams), através das quais é possível organizar notificações para aplicativos sobre alterações nos dados do banco de dados. As informações sobre as mudanças chegam em tempo real e permitem criar aplicativos utilizando métodos de programação reativa e orientada a eventos. Os eventos são processados através do método watch, com a possibilidade de filtrar e agregar eventos necessários utilizando os operadores $match, $project e $redact. Na nova versão, é possível obter o estado anterior e seguinte do documento (por exemplo, quando o documento é excluído ou modificado). Além das operações usando a linguagem DML (data manipulation language), foi adicionada a suporte para operações DDL (data definition language), como a criação e exclusão de índices e coleções. Foram adicionadas ferramentas para filtrar notificações associadas.
  • Nos operadores $lookup e $graphlookup, foi implementado suporte total para armazenamentos particionados (sharded). O desempenho da operação $lookup foi otimizado; por exemplo, com a presença de um índice na chave estrangeira, a correspondência de um pequeno número de documentos agora é realizada de 5 a 10 vezes mais rápido, enquanto que para um grande número de documentos, a velocidade é duas vezes maior. Para correspondências sem o uso de índices, o ganho de desempenho pode chegar a 100 vezes.
  • Foi disponibilizada a execução de consultas analíticas complexas em cortes de estado de dados (snapshot) consistentes. Essas consultas analíticas podem abranger vários segmentos em grandes configurações distribuídas do MongoDB.
  • Novos operadores $maxN, $minN e $lastN foram adicionados para determinar valores em conjuntos de dados, além do operador $sortArray para classificar elementos de um array.
  • A eficiência de segmentação foi significativamente aumentada. O tamanho do bloco padrão para coleções segmentadas foi ampliado para 128 MB. O comando configureCollectionBalancing foi adicionado para desfragmentar coleções segmentadas.
  • O cliente de criptografia de dados em nível de campo (CSFLE, client-side field-level encryption) agora suporta provedores de chave compatíveis com KMIP.
  • Foi adicionada a capacidade de compactação e criptografia do log de auditoria, que reflete a atividade dos usuários do SGBD.
  • Implementado o modo experimental de sincronização de dados entre clusters do MongoDB (Cluster-to-Cluster Sync).

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster