Yandex lançou o código fonte de seu DBMS «YDB»

Recentemente, a notícia de que Yandex lançou o código fonte de seu DBMS, «YDB», que implementa suporte para o dialeto SQL e transações ACID.

o SGBD foi construído desde o início e foi inicialmente desenvolvido com o objetivo de garantir a tolerância a falhas, failover automático e escalabilidade. Deve-se notar que o Yandex lançou clusters YDB funcionais, incluindo mais de 10 mil nós, que armazenam centenas de petabytes de dados e atendem a milhões de transações distribuídas por segundo.

Principais novidades do YDB

Dos recursos que se destacam do YDB é o uso do modelo de dados relacional com tabelas YQL (YDB Query Language) é usado para consultar e definir o esquema de dados, que é um dialeto de SQL adaptado para trabalhar com grandes bancos de dados distribuídos. Ao criar um esquema de armazenamento, há suporte para um agrupamento de tabelas em forma de árvore, que se assemelha aos diretórios em um sistema de arquivos. Uma API é fornecida para trabalhar com dados no formato JSON.

O capacidade de criar configurações tolerantes a falhas que continuam a funcionar quando discos, nós, racks e até mesmo data centers individuais falham. O YDB oferece suporte à implantação e replicação síncrona em três zonas de disponibilidade, mantendo o estado do cluster em caso de falha de uma das zonas.

Suporte de acesso a dados usando consultas de varredura, projetadas para realizar consultas analíticas ad-hoc no banco de dados, executadas em modo somente leitura e retornando um fluxo grpc.

Além disso, também se destaca armazenando dados diretamente em dispositivos de bloco usando o componente PDisk nativo e a camada VDisk. Além do VDisk, é executado o DSProxy, que analisa a disponibilidade e o desempenho dos discos para excluí-los se forem detectados problemas.

Das outras características que se destacam:

  • Uma arquitetura flexível que permite construir vários serviços em cima do YDB, até dispositivos de blocos virtuais e filas persistentes. Adequação para diferentes tipos de carga de trabalho: OLTP e OLAP (consultas analíticas).
  • Suporte para configurações multiusuário (multiusuário) e sem servidor.
  • Capacidade de autenticar clientes. Os usuários podem criar seus próprios clusters virtuais e bancos de dados em uma infraestrutura compartilhada comum, considerando o consumo de recursos em termos de número de solicitações e tamanho dos dados, ou alugando/reservando determinados recursos de computação e espaço de armazenamento.
  • Possibilidade de ajustar a vida útil dos registros para a exclusão automática de dados obsoletos.
  • A interação com o DBMS e o envio de solicitações são feitos usando a interface de linha de comando, a interface web integrada ou o YDB SDK, que fornece bibliotecas para C++, C# (.NET), Go, Java, Node.js, PHP e Python.
  • Recupere automaticamente de falhas com atraso mínimo para aplicativos e mantenha automaticamente a redundância especificada ao armazenar dados.
  • Criação automática de índices na chave primária e a capacidade de definir índices secundários para melhorar a eficiência do acesso arbitrário à coluna.
  • Escalabilidade horizontal. À medida que a carga e o tamanho dos dados armazenados aumentam, o cluster pode ser expandido simplesmente conectando novos nós. As camadas de computação e armazenamento são separadas, permitindo dimensionar a computação e o armazenamento separadamente. O próprio SGBD monitora a distribuição uniforme de dados e carga, levando em consideração os recursos de hardware disponíveis. É possível implementar configurações geograficamente distribuídas que abrangem vários data centers em diferentes partes do mundo.
  • Suporte para um modelo de consistência forte e transações ACID ao processar consultas que abrangem vários nós e tabelas. Para melhorar o desempenho, você pode desativar seletivamente a verificação de consistência.
  • Replicação automática de dados, particionamento automático (particionamento, fragmentação) quando o tamanho ou a carga aumenta e balanceamento automático de carga e dados entre nós.

Finalmente, deve-se notar que YDB é usado em projetos Yandex, o código está escrito em C/C++ e é distribuído sob a licença Apache 2.0, você pode ver o código fonte, bem como mais detalhes sobre ele no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.