Hace poco se dio a conocer la noticia de que Yandex libero el código fuente de su DBMS, «YDB», que implementa soporte para el dialecto SQL y las transacciones ACID.
El DBMS se creó desde cero y se desarrolló inicialmente con miras a garantizar la tolerancia a fallas, la recuperación automática en caso de fallas y la escalabilidad. Cabe señalar que Yandex lanzó clústeres YDB en funcionamiento, incluidos más de 10 mil nodos, que almacenan cientos de petabytes de datos y atienden millones de transacciones distribuidas por segundo.
Principales novedades de YDB
De las características que se destacan de YDB es el uso del modelo de datos relacional con tablas YQL (YDB Query Language) se utiliza para consultar y definir el esquema de datos, que es un dialecto de SQL adaptado para trabajar con grandes bases de datos distribuidas. Al crear un esquema de almacenamiento, se admite una agrupación de tablas en forma de árbol, que se asemeja a los directorios de un sistema de archivos. Se proporciona una API para trabajar con datos en formato JSON.
Tambien se destaca la capacidad de crear configuraciones tolerantes a fallas que continúan funcionando cuando fallan discos, nodos, bastidores e incluso centros de datos individuales. YDB admite la implementación y la replicación síncrona en tres zonas de disponibilidad mientras mantiene el estado del clúster en caso de falla de una de las zonas.
Compatibilidad con el acceso a datos mediante consultas de escaneo, diseñado para realizar consultas analíticas ad-hoc en la base de datos, ejecutadas en modo de solo lectura y devolviendo un flujo grpc.
Ademas, de ello tambien se destaca el almacenamiento de datos directamente en dispositivos de bloque utilizando el componente PDisk nativo y la capa VDisk. Además de VDisk, se ejecuta DSProxy, que analiza la disponibilidad y el rendimiento de los discos para excluirlos si se detectan problemas.
De las demás características que se destacan:
- Una arquitectura flexible que le permite crear varios servicios sobre YDB, hasta dispositivos de bloques virtuales y colas persistentes . Idoneidad para diferentes tipos de carga de trabajo: OLTP y OLAP (consultas analíticas).
- Compatibilidad con configuraciones multiusuario (multiusuario) y sin servidor.
- Capacidad para autenticar clientes. Los usuarios pueden crear sus propios clústeres virtuales y bases de datos en una infraestructura común compartida, teniendo en cuenta el consumo de recursos a nivel de número de solicitudes y tamaño de datos, o alquilando/reservando ciertos recursos informáticos y espacio de almacenamiento.
- Posibilidad de ajustar la vida útil de los registros para la eliminación automática de datos obsoletos.
- La interacción con el DBMS y el envío de solicitudes se lleva a cabo mediante la interfaz de línea de comandos , la interfaz web integrada o el YDB SDK , que proporciona bibliotecas para C ++, C # (.NET), Go, Java, Node.js, PHP y Python.
- Recupérese automáticamente de fallas con demoras mínimas para las aplicaciones y mantenga automáticamente la redundancia especificada al almacenar datos.
- Creación automática de índices en la clave primaria y la capacidad de definir índices secundarios para mejorar la eficiencia del acceso a columnas arbitrarias.
- Escalabilidad horizontal. A medida que crece la carga y el tamaño de los datos almacenados, el clúster se puede expandir simplemente conectando nuevos nodos. Los niveles de cómputo y almacenamiento están separados, lo que permite escalar el cómputo y el almacenamiento por separado. El propio DBMS supervisa la distribución uniforme de los datos y la carga, teniendo en cuenta los recursos de hardware disponibles. Es posible implementar configuraciones distribuidas geográficamente que cubren varios centros de datos en diferentes partes del mundo.
- Compatibilidad con un modelo de consistencia sólida y transacciones ACID al procesar consultas que abarcan varios nodos y tablas. Para mejorar el rendimiento, puede deshabilitar selectivamente el control de coherencia.
- Replicación automática de datos, particionamiento automático (particionamiento, fragmentación) cuando aumenta el tamaño o la carga, y equilibrio automático de carga y datos entre nodos.
Finalmente, cabe destacar que YDB se utiliza en proyectos de Yandex, el código está escrito en C/C++ y se distribuye bajo la licencia Apache 2.0, pueden conocer el código fuente, asi como más detalles al respecto en el siguiente enlace.
from Desde Linux https://ift.tt/Yd3fXaw
via IFTTT
No hay comentarios.:
Publicar un comentario