YDB, una base de datos SQL distribuida open source
Para quienes estén en busca de una base de datos SQL distribuida, el articulo del cual hablaremos el dÃa de hoy puede ser de su interés, ya que hablaremos sobre YDB, la cual es una base de datos la cual hace poco Yandex libero su código fuente.
YDB fue diseñada desde cero en respuesta a la creciente demanda de servicios web interactivos escalables. La escalabilidad, la consistencia estricta y las transacciones eficientes entre rangos fueron esenciales para una carga de trabajo similar a OLTP.
YDB está construido por personas con una sólida experiencia en bases de datos y sistemas distribuidos, que desarrollaron una base de datos No-SQL y el sistema Map-Reduce para uno de los motores de búsqueda más grandes del mundo.
Bajo la licencia Apache 2.0, YDB se ejecuta en plataformas x86 de 64 bits con un mÃnimo de 8 GB de RAM.
“Tenemos una amplia experiencia en la ejecución de sistemas de producción en máquinas x86 de 64 bits que ejecutan Ubuntu Linux. Descubrimos que el diseño flexible de YDB nos permite construir más servicios encima, incluidas colas persistentes y dispositivos de bloques virtuales”, dice el equipo de desarrollo.
“Para fines de desarrollo, verificamos regularmente que la base de datos YDB se pueda construir y ejecutar en las últimas versiones de MacOS y Microsoft Windows. »
YDB se puede implementar en tres zonas de disponibilidad. El clúster sigue siendo legible y escribible durante una falla completa de una sola zona. Una zona de disponibilidad es un centro de datos aislado o un segmento del mismo con una distancia fÃsica mÃnima entre los nodos y un riesgo mÃnimo de falla junto con otras zonas de disponibilidad.
Una gran región geográfica es un área en la que la distancia entre las zonas de disponibilidad es de 500 km o menos. Un clúster YDB distribuido geográficamente contiene nodos ubicados en diferentes zonas de disponibilidad dentro de una gran región geográfica. YDB realiza escrituras de datos sincrónicas en cada una de las zonas de disponibilidad, lo que garantiza un rendimiento ininterrumpido en caso de falla de una zona de disponibilidad.
En clústeres distribuidos geográficamente, es posible elegir una polÃtica para distribuir los recursos informáticos entre los centros de datos. Esto le permite lograr el equilibrio adecuado entre el tiempo de actividad mÃnimo y el tiempo de inactividad mÃnimo si falla un centro de datos.
A diferencia de las bases de datos relacionales tradicionales, YDB es escalable, lo que permite a los desarrolladores simplemente expandir el clúster con recursos informáticos o de almacenamiento para hacer frente al aumento de la carga. YDB tiene capas de computación y almacenamiento desagregadas que permiten escalar los recursos de computación y almacenamiento de manera independiente.
Las instalaciones de producción actuales tienen más de 10 000 nodos, almacenan petabytes de datos y manejan millones de transacciones distribuidas por segundo.
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.
Y que ademas cuenta con 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, admite configuraciones sin servidor y multiinquilino. Un usuario puede operar un clúster YDB y crear múltiples bases de datos que comparten un grupo de almacenamiento y tienen diferentes nodos de cómputo. Un usuario también puede ejecutar varias bases de datos sin servidor que comparten un conjunto de recursos informáticos para utilizarlos de manera eficiente.
YDB combina consistencia sólida, transacciones ACID, consultas de alto rendimiento, adquisición rápida de datos con un dialecto SQL familiar y compatibilidad con API JSON. Funciona con todas las cargas de trabajo modernas: clave-valor, relacional, JSON.
Finalmente, si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.