Yandex abriu o código do DBMS distribuído YDB compatible con SQL

Yandex publicou o código fonte do DBMS distribuído YDB, que implementa soporte para o dialecto SQL e as transaccións ACID. O DBMS foi creado desde cero e foi desenvolvido inicialmente co obxectivo de garantir a tolerancia a fallos, a recuperación automática de fallos e a escalabilidade. Nótase que Yandex lanzou clústeres YDB en funcionamento, que inclúen máis de 10 mil nodos, que almacenan centos de petabytes de datos e serven millóns de transaccións distribuídas por segundo. YDB úsase en proxectos de Yandex como Market, Cloud, Smart Home, Alice, Metrica e Auto.ru. O código está escrito en C/C++ e distribúese baixo a licenza Apache 2.0. Para familiarizarse e iniciar rapidamente, pode usar un contedor Docker preparado.

Características do proxecto:

  • Usando un modelo de datos relacional con táboas. Para as consultas e definir o esquema de datos utilízase a linguaxe YQL (YDB Query Language), que é un dialecto de SQL adaptado para traballar con grandes bases de datos distribuídas. Ao crear un esquema de almacenamento, admítese unha agrupación de táboas tipo árbore, que lembra aos directorios dun sistema de ficheiros. Ofrécese unha API para traballar con datos en formato JSON.
    Yandex abriu o código do DBMS distribuído YDB compatible con SQL
  • Soporte para o acceso a datos mediante consultas de dixitalización deseñadas para realizar consultas analíticas ad-hoc na base de datos, executadas en modo de só lectura e devolvendo un fluxo grpc.
  • A interacción co DBMS e o envío de solicitudes realízase mediante a interface de liña de comandos, a interface web integrada ou o SDK YDB, que proporciona bibliotecas para C++, C# (.NET), Go, Java, Node.js, PHP e Python.
  • A capacidade de crear configuracións tolerantes a fallos que continúan funcionando cando fallan discos, nodos, racks e incluso centros de datos individuais. YDB admite a implantación e a replicación síncrona en tres zonas de dispoñibilidade, mantendo a funcionalidade do clúster en caso de fallo dunha das zonas.
  • Recupérate automaticamente de fallos cunha latencia mínima para as aplicacións e mantén automaticamente a redundancia de datos especificada.
  • Creación automática de índices baseados na clave primaria e na posibilidade de definir índices secundarios para mellorar a eficiencia do acceso a columnas arbitrarias.
  • Escalabilidade horizontal. A medida que aumenta a carga e o tamaño dos datos almacenados, o clúster pódese ampliar simplemente conectando novos nodos. Os niveis de cómputo e de almacenamento están separados, o que lle permite ampliar a súa potencia de cómputo e o seu tamaño de almacenamento por separado. O propio DBMS supervisa a distribución uniforme de datos e carga, tendo en conta os recursos de hardware dispoñibles. É posible despregar configuracións distribuídas xeograficamente que abranguen varios centros de datos en diferentes partes do mundo.
  • Admite o modelo de coherencia forte e as transaccións ACID ao procesar consultas que abarcan varios nodos e táboas. Para mellorar o rendemento, pode desactivar selectivamente a comprobación de coherencia.
  • Replicación automática de datos, partición automática (particionamento, fragmentación) cando o tamaño ou a carga aumenta, e a carga automática e o equilibrio de datos entre nodos.
  • Almacenamento de datos directamente en dispositivos de bloque usando o compoñente PDisk nativo e a capa VDisk. DSProxy execútase enriba de VDisk, que analiza as características de dispoñibilidade e rendemento dos discos para eliminalos se se detectan problemas.
  • Arquitectura flexible que che permite crear varios servizos enriba de YDB, incluíndo dispositivos de bloques virtuais e colas persistentes. Adecuación para diferentes tipos de cargas de traballo, OLTP e OLAP (consultas analíticas).
  • Soporte para configuracións multitenant e sen servidor. Posibilidade de autenticación do cliente. Os usuarios poden crear os seus clústeres virtuais e bases de datos nunha infraestrutura común compartida, tendo en conta o consumo de recursos a nivel de número de solicitudes e tamaño de datos, ou ben alugando/reservando determinados recursos informáticos e espazo de almacenamento.
  • Capacidade de configurar a vida útil dos rexistros para eliminar automaticamente os datos obsoletos.

Fonte: opennet.ru

Engadir un comentario