Articulo de referencia

YDB (base de datos)

{{cite web|title=Releasev24.3.15.5 |url=https://github.com/ydb-platform/ydb/releases/tag/24.3.15.5\n|website=Github |accessdate=6 Feb 2025}} "},"operating system":{"wt":"[[Linux...

YDB ( Yet another DataBase ) es un sistema de gestión de bases de datos SQL distribuido (DBMS) desarrollado por Yandex , disponible como tecnología de código abierto .

Funcionalidad

YDB es una tecnología que permite crear grandes servicios web capaces de soportar grandes cargas operativas de hasta millones de solicitudes por segundo. Utiliza un dialecto fuertemente tipado de SQL [ 2 ] — YDB Query Language (YQL) [ 3 ] como lenguaje de consulta predeterminado y admite transacciones ACID . [ 4 ]

Los análogos más cercanos de este sistema de gestión de bases de datos disponibles como software de código abierto son YugabyteDB y CockroachDB .

YDB se puede implementar de forma autónoma en clústeres de computadoras en hosts físicos o en máquinas virtuales mediante Kubernetes , o bien como un servicio gestionado en Yandex Cloud. Para la opción de servicio gestionado, están disponibles el modo de computación sin servidor y el modo dedicado.

Arquitectura

YDB funciona en clústeres con arquitectura sin recursos compartidos y utiliza hardware estándar . El sistema se basa en tabletas que implementan un protocolo de comunicación para resolver el consenso en una red de procesadores no confiables. Funcionalmente, este protocolo es similar a Paxos y Raft .

Las tabletas de usuario en YDB tienen una clave primaria obligatoria y se dividen en particiones según sus rangos. Las particiones con datos de usuario están controladas por tabletas, llamadas DataShards. El tamaño de un DataShard puede alcanzar varios gigabytes. Se divide automáticamente en varias tabletas cuando se supera el umbral de almacenamiento de datos o el umbral de carga de particiones. Así es como el sistema se escala de forma transparente en función de la carga de usuarios.

Además de DataShard, otros tipos de tabletas incluyen, entre otros:

  • SchemeShard, que almacena metadatos sobre las tablas de usuarios;
  • Hive, que equilibra y lanza tabletas;
  • Coordinador y mediador, que programan transacciones distribuidas.

Los datos de las tabletas se almacenan en la capa de almacenamiento distribuido, que es un sistema de almacenamiento clave-valor con un protocolo especializado para admitir el protocolo de la tableta. El almacenamiento distribuido garantiza la replicación de datos, mientras que los datos de las tabletas se almacenan como BLOBs .

YDB ejecuta transacciones distribuidas entre datos de una o más tablas utilizando un marco de transacciones distribuidas basado en el algoritmo Calvin [ 5 ] . A diferencia de Calvin, YDB admite transacciones interactivas y no deterministas mediante el uso de bloqueo de registros .

YDB se basa en el modelo de actores . Los actores son autómatas de back-end de un solo hilo que intercambian mensajes entre sí, aunque residen en diferentes servidores del clúster. Los mensajes dentro de la red se intercambian mediante la biblioteca de interconexión desarrollada como parte del proyecto.

Se han desarrollado varios servicios digitales, como dispositivos de bloques virtuales o colas persistentes, como una capa sobre YDB.

YDB admite la interacción del usuario a través del protocolo gRPC con varios SDK de cliente que implementan procedimientos para el descubrimiento de nodos, el equilibrio de clientes, etc. [ 4 ]

YDB no admite UUID como tipo de dato independiente. No tiene una función integrada para incrementar automáticamente el valor de un campo al agregar datos a una tabla. [ 6 ]

Historia

En 2010, Yandex comenzó a trabajar en su propio sistema de gestión de bases de datos NoSQL , KiWi [ 3 ] , y lo lanzó para uso interno en 2011. Sin embargo, KiWi tenía consistencia eventual , así como otras desventajas del modelo NoSQL. [ 4 ]

En 2012, para cubrir sus necesidades de DBMS, Yandex inicia el proyecto KiKiMR, que más tarde se conocería como YDB. [ 3 ]

En 2016, YDB se implementó en los servicios de Yandex.

En 2018, se lanzó la plataforma Yandex Cloud con almacenamiento de datos basado en YDB. [ 7 ] Al mismo tiempo, la empresa anunció que en el futuro pondría YDB a disposición como un servicio gestionado en Yandex Cloud, y posteriormente proporcionó a los clientes acceso a este servicio, así como a otros servicios gestionados , como PostgreSQL, MongoDB y otros. [ 8 ] Esta versión en la nube se denominó Yandex Database (servicio gestionado para YDB, posteriormente).

En abril de 2022, el sistema de gestión de bases de datos YDB se publicó en GitHub como software libre bajo la licencia Apache 2.0 .

Referencias

  1. "Releasev24.3.15.5" . Github . Consultado el 6 de febrero de 2025 .
  2. ^ "Как писать меньше кода для MR, или Зачем миру ещё один язык запросов? Historia Yandex Query Language" . Хабр (en ruso). 12 de octubre de 2016 . Consultado el 1 de julio de 2022 .
  3. 1 2 3 "YDB ya está disponible como proyecto de código abierto" . medium.com . 23 de junio de 2022. Consultado el 1 de julio de 2022 .
  4. 1 2 3 "Бессерверная альтернатива традиционным базам данных" . osp.ru (en ruso) . Consultado el 1 de julio de 2022 .
  5. "Calvin: Transacciones distribuidas rápidas para sistemas de bases de datos particionadas" (PDF) . cs.yale.edu . Consultado el 4 de julio de 2022 .
  6. ^ "Автоинкремент в Yandex Database" . medium.com (en ruso). 14 de febrero de 2022 . Consultado el 4 de julio de 2022 .
  7. "001. Яндекс Облако: обзор платформы – Ян Лещинский" . Youtube (en ruso) . Consultado el 4 de julio de 2022 .
  8. "about:cloud" . YouTube (en ruso) . Consultado el 4 de julio de 2022 .
  • Sitio web oficial