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

Recentemente, foi anunciado que a Yandex liberou o código-fonte de seu SGBD, "YDB" , que implementa suporte para o dialeto SQL e transações ACID.

O SGBD foi construído do zero e inicialmente desenvolvido com o objetivo de garantir tolerância a falhas , recuperação automática em caso de falhas e escalabilidade. Vale ressaltar que a Yandex lançou clusters YDB operacionais, incluindo mais de 10 nós, armazenando centenas de petabytes de dados e processando milhões de transações distribuídas por segundo.

Principais novidades do YDB

Uma das principais características do YDB é o uso de um modelo de dados relacional com tabelas. A linguagem YQL ( YDB Query Language) é usada para consultar e definir o esquema de dados; trata-se de um dialeto de SQL adaptado para trabalhar com grandes bancos de dados distribuídos . Ao criar um esquema de armazenamento, é suportado um agrupamento de tabelas em forma de árvore, semelhante aos diretórios em um sistema de arquivos. Uma API é fornecida para trabalhar com dados em formato JSON.

Vale destacar também sua capacidade de criar configurações tolerantes a falhas que continuam funcionando mesmo quando discos, nós, racks e até mesmo data centers individuais falham. O YDB oferece suporte à implantação e replicação síncronas em três zonas de disponibilidade, mantendo a integridade do cluster em caso de falha em uma zona.

Compatibilidade com acesso a dados via consultas de varredura (scan queries), projetadas para executar consultas analíticas ad-hoc no banco de dados, executadas em modo somente leitura e retornando um fluxo gRPC.

Além disso, destaca-se por armazenar dados diretamente em dispositivos de bloco usando o componente nativo PDisk e a camada VDisk. Adicionalmente ao VDisk, o DSProxy é executado, analisando a disponibilidade e o desempenho dos discos para excluí-los caso problemas sejam detectados.

Outras características notáveis ​​incluem:

  • 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.

Por fim, vale ressaltar que o YDB é utilizado em projetos da Yandex, o código é escrito em C/C++ e distribuído sob a licença Apache 2.0. Você pode encontrar o código-fonte, bem como mais detalhes sobre ele, no seguinte link.


Adicionar como fonte preferencial no Google