Articulo de referencia

YugabyteDB

2.23 (Preview)"},"latest release date":{"wt":"{{Start date and age|2024|12|09}} {{Start date and age|2024|09|13}}"},"programming language":{"wt":"[[C++]]"},"operating system":{"...

YugabyteDB es una base de datos SQL distribuida transaccional de alto rendimiento para aplicaciones nativas de la nube , desarrollada por Yugabyte. [ 1 ]

Historia

Yugabyte fue fundada por los ex ingenieros de Facebook Kannan Muthukkaruppan, Karthik Ranganathan y Mikhail Bautin. En Facebook, formaron parte del equipo que construyó y operó Cassandra y HBase [ 2 ] [ 3 ] para cargas de trabajo como Facebook Messenger y el Almacén de Datos Operacionales de Facebook . [ 4 ]

Los fundadores se reunieron en febrero de 2016 para construir YugabyteDB. [ 5 ] [ 6 ]

YugabyteDB inicialmente estaba disponible en dos ediciones: comunitaria y empresarial. En julio de 2019, Yugabyte liberó como código abierto las funciones que antes eran comerciales y lanzó YugabyteDB como software de código abierto bajo la licencia Apache 2.0. [ 7 ]

Fondos

En octubre de 2021, cinco años después de la creación de la empresa, Yugabyte cerró una ronda de financiación Serie C de 188 millones de dólares para convertirse en una empresa emergente unicornio con una valoración de 1.300 millones de dólares [ 8 ].

Arquitectura

YugabyteDB es una base de datos SQL distribuida que busca ser fuertemente consistente transaccionalmente en zonas de fallo (es decir, cumplimiento ACID ). [ 20 ] [ 21 ] En términos del Teorema CAP, YugabyteDB es una base de datos consistente/tolerante a particiones (CP). [ 22 ] [ 23 ] [ 24 ] YugabyteDB tiene dos capas, [ 25 ] un motor de almacenamiento conocido como DocDB y la capa de consulta de Yugabyte. [ 26 ]

Diagrama de bloques de arquitectura para YugabyteDB
Arquitectura de YugabyteDB

DocDB

El motor de almacenamiento consta de una RocksDB personalizada [ 26 ] [ 27 ] combinada con algoritmos de fragmentación y equilibrio de carga para los datos. Además, el algoritmo de consenso Raft controla la replicación de datos entre los nodos. [ 26 ] [ 27 ] También hay un gestor de transacciones distribuidas [ 26 ] [ 27 ] y control de concurrencia multiversión (MVCC) [ 26 ] [ 27 ] para admitir transacciones distribuidas. [ 27 ]

El motor también aprovecha un reloj lógico híbrido [ 28 ] [ 26 ] que combina relojes físicos sincronizados de forma aproximada con relojes Lamport para rastrear relaciones causales. [ 29 ]

La capa DocDB no es directamente accesible para los usuarios. [ 26 ]

Capa de consulta de YugabyteDB

Yugabyte tiene una capa de consulta conectable que abstrae la capa de consulta de la capa de almacenamiento inferior. [ 30 ] Actualmente hay dos API que pueden acceder a la base de datos: [ 27 ]

YSQL [ 31 ] es una API compatible con el código de PostgreSQL [ 32 ] [ 33 ] basada en la versión 11.2. Se accede a YSQL mediante controladores estándar de PostgreSQL que utilizan protocolos nativos. [ 34 ] Aprovecha el código nativo de PostgreSQL para la capa de consulta [ 35 ] y reemplaza el motor de almacenamiento con llamadas a la capa de consulta conectable. Esta reutilización significa que Yugabyte admite muchas características, entre ellas:

  • Disparadores y procedimientos almacenados [ 33 ]
  • Extensiones de PostgreSQL que operan en la capa de consulta [ 33 ]
  • Soporte nativo para JSONB [ 33 ]

YCQL [ 36 ] es una API similar a Cassandra basada en la versión 3.10 y reescrita en C++. Se accede a YCQL mediante controladores estándar de Cassandra [ 37 ] utilizando el puerto de protocolo nativo 9042. Además de los componentes básicos de Cassandra, YCQL se complementa con las siguientes características:

Actualmente, los datos escritos en cualquiera de las API no son accesibles a través de la otra API; sin embargo, YSQL puede acceder a YCQL utilizando la función de envoltura de datos externos de PostgreSQL. [ 41 ]

El modelo de seguridad para acceder al sistema se hereda de la API, por lo que los controles de acceso para YSQL se parecen a los de PostgreSQL, [ 42 ] y los de YCQL se parecen a los de Cassandra. [ 43 ]

Replicación de clúster a clúster

Además de su funcionalidad principal de distribuir una única base de datos, YugabyteDB tiene la capacidad de replicarse entre instancias de base de datos. [ 44 ] [ 45 ] La replicación puede ser unidireccional o bidireccional y es asíncrona. La replicación unidireccional se utiliza para crear una copia de solo lectura para la descarga de carga de trabajo o en modo de lectura/escritura para crear una copia en espera activa/pasiva. La replicación bidireccional se utiliza generalmente en configuraciones de lectura/escritura y se emplea para configuraciones activas/activas, aplicaciones geodistribuidas, etc.

Herramientas de migración

Yugabyte también proporciona YugabyteDB Voyager, una herramienta para facilitar la migración de Oracle y otras bases de datos similares a YugabyteDB. [ 46 ] [ 47 ] Esta herramienta admite la migración de esquemas, código procedimental y datos desde la plataforma de origen a YugabyteDB.

Véase también

Referencias

  1. "Propiedades del sistema YugabyteDB" . DB-Engines . Consultado el 30 de diciembre de 2021 .
  2. ^ "Karthik Ranganathan" . Universidad de datos . Consultado el 30 de diciembre de 2021 .
  3. ^ Borthakur, Dhruba; Erupción, Samuel; Schmidt, Rodrigo; Aiyer, Amitanand; Gris, Jonathan; Sarma, Joydeep Sen; Muthukkaruppan, Kannan; Spiegelberg, Nicolás; Kuang, Hairong; Ranganathan, Karthik; Molkov, Dmytro; Menón, Aravind (2011). "Apache hadoop funciona en tiempo real en Facebook". Actas de la Conferencia Internacional ACM SIGMOD 2011 sobre Gestión de Datos . pag. 1071.doi : 10.1145 /1989323.1989438 . ISBN  9781450306614. S2CID 207188340 . Consultado el 15 de enero de 2022 . {{cite book}}: |website=ignorado ( ayuda )
  4. "YugaByte recauda 8 millones de dólares en financiación de serie A" . FINSMES . 2 de noviembre de 2017. Consultado el 30 de diciembre de 2021 .
  5. "El CTO de Yugabyte describe una ruta de PostgreSQL hacia la nube distribuida" . VentureBeat . 26 de julio de 2021. Consultado el 31 de diciembre de 2021 .
  6. "Yugabyte amplía su servicio de nube empresarial totalmente gestionado con 188 millones de dólares" . VentureBeat . 28 de octubre de 2021. Consultado el 30 de diciembre de 2021 .
  7. "Yugabyte amplía las capacidades de bases de datos multirregión y la seguridad de nivel empresarial con YugabyteDB 2.5" . businesswire.com . 12 de noviembre de 2020. Consultado el 30 de noviembre de 2024 .
  8. "Otro unicornio de bases de datos SQL nativas de la nube: Yugabyte recauda 188 millones de dólares en financiación de Serie C con una valoración de 1.300 millones de dólares" . ZDNet . Consultado el 12 de enero de 2022 .
  9. "YugaByte recauda 8 millones de dólares en financiación de serie A" . Finsmes . 2 de noviembre de 2017.
  10. "YugaByte recibe una ronda de financiación Serie A de 8 millones de dólares" . VC News Daily . Consultado el 12 de enero de 2022 .
  11. "YugaByte recauda 16 millones de dólares para combinar SQL y NoSQL en una sola base de datos" . Technologies.org . Consultado el 12 de enero de 2022 .
  12. "El nuevo software de base de datos de YugaByte recauda 16 millones de dólares para que los desarrolladores puedan migrar a cualquier nube" . TechCrunch . 12 de junio de 2018. Consultado el 12 de enero de 2022 .
  13. "Otra base de datos SQL nativa de la nube distribuida globalmente en auge: Yugabyte recauda 30 millones de dólares en financiación de Serie B" . ZDNet . Consultado el 12 de enero de 2022 .
  14. "Yugabyte recauda 30 millones de dólares para su base de datos SQL distribuida nativa de la nube" . SiliconAngle . 9 de junio de 2020. Consultado el 12 de enero de 2022 .
  15. "Yugabyte recauda 48 millones de dólares para una alternativa de base de datos SQL de código abierto" . VentureBeat . 3 de marzo de 2021. Consultado el 12 de enero de 2022 .
  16. "Yugabyte recauda 48 millones de dólares en una ronda de financiación para acelerar la adopción de SQL distribuido en empresas e impulsar la expansión global" . YahoonFinance . Consultado el 12 de enero de 2022 .
  17. "La última ronda de financiación de Yugabyte valora el sistema SQL distribuido en 1.300 millones de dólares" . The Register . Consultado el 12 de enero de 2022 .
  18. "Otro unicornio de bases de datos SQL nativas de la nube: Yugabyte recauda 188 millones de dólares en financiación de Serie C con una valoración de 1.300 millones de dólares" . ZDNet . Consultado el 12 de enero de 2022 .
  19. "La startup de bases de datos de alto rendimiento Yugabyte recauda 188 millones de dólares en una nueva ronda de financiación" . Silicon Angle . 28 de octubre de 2021. Consultado el 12 de enero de 2022 .
  20. "Transacciones ACID" . Devopedia . 18 de agosto de 2019. Consultado el 12 de enero de 2022 .
  21. "Soluciones TIC para mercados de flexibilidad local" (PDF) . Academia de Studii Economice din Bucuresti . Actas de la Conferencia Internacional IE 2020. Consultado el 15 de enero de 2022 .
  22. "YugaByteDB: Una base de datos distribuida nativa de la nube para un almacenamiento de datos altamente escalable" . Open Source Forum . 14 de septiembre de 2020. Consultado el 15 de enero de 2022 .
  23. "Objetivos de diseño de Yugabyte" . Yugabyte.com . Consultado el 15 de enero de 2022 .
  24. Galić, Zdravko; Vuzem, Mario (2020). "Un núcleo genérico y extensible y un prototipo de LIS consistente, distribuido y resiliente" . ISPRS International Journal of Geo-Information . 9 (7): 437. Bibcode : 2020IJGI....9..437G . doi : 10.3390/ijgi9070437 .
  25. "Arquitectura en capas de Yugabyte" . Yugabyte . Consultado el 15 de enero de 2022 .
  26. 1 2 3 4 5 6 7 Hirsch, Orhan Henrik. "Escalabilidad de las bases de datos NewSQL en un entorno de nube" (PDF) . Universidad Noruega de Ciencia y Tecnología . NYNU Open . Recuperado el 15 de enero de 2022 .
  27. 1 2 3 4 5 6 Budholia, Akash. "Sistema de monitoreo NewSQL" . Trabajos académicos de la Universidad Estatal de San José . Recuperado el 15 de enero de 2022 .
  28. "Reloj híbrido" . Martin Fowler . Consultado el 30 de diciembre de 2021 .
  29. "Transacciones distribuidas sin relojes atómicos" (PDF) . Yugabyte . Consultado el 15 de enero de 2022 .
  30. "Yugabyte DB 2.0 lanza una base de datos SQL distribuida lista para producción para la migración a la nube" . Integration Developer News . Consultado el 15 de enero de 2022 .
  31. "Lenguaje de consulta estructurada de Yugabyte (YSQL)" . Yugabyte . Consultado el 15 de enero de 2022 .
  32. "Yugabyte satisface la demanda de los desarrolladores de una compatibilidad integral con PostgreSQL en YugabyteDB 2.11" . BusinessWire . 23 de noviembre de 2021. Consultado el 15 de enero de 2022 .
  33. 1 2 3 4 "Compatibilidad con PostgreSQL en YugabyteDB 2.0" . Yugabyte . 17 de septiembre de 2019.
  34. "Controladores de cliente para YSQL" . Yugabyte .
  35. "Por qué creamos YugabyteDB reutilizando la capa de consulta de PostgreSQL" . Yugabyte . 24 de abril de 2020. Consultado el 15 de enero de 2022 .
  36. "Lenguaje de consulta en la nube de Yugabyte (YCQL)" . Yugabyte . Consultado el 15 de enero de 2022 .
  37. "Controladores de cliente para YCQL" . Yugabyte .
  38. "Transacciones ACID" . Yugabyte .
  39. "Tipo de datos JSONB de YCQL" . Yugabyte . Consultado el 15 de enero de 2022 .
  40. "Índices secundarios de YCQL" . Yugabyte . Consultado el 15 de enero de 2022 .
  41. "YugabyteDB: Envoltorio de datos externos de Postgres" . Gruchalski . 8 de noviembre de 2021. Consultado el 15 de enero de 2022 .
  42. "Control de acceso YSQL" . Yugabyte . Consultado el 15 de enero de 2022 .
  43. "Controles de acceso YCWL" . Yugabyte . Consultado el 15 de enero de 2022 .
  44. "Yugabyte amplía las capacidades de bases de datos multirregión y la seguridad de nivel empresarial con YugabyteDB 2.5" . Business Wire . 12 de noviembre de 2020. Consultado el 15 de enero de 2022 .
  45. "xCLuster Replication" . Yugabyte . Consultado el 15 de enero de 2022 .
  46. "Yugabyte simplifica la migración de bases de datos SQL con YugabyteDB Voyager" . siliconANGLE . 24 de enero de 2023. Consultado el 15 de marzo de 2023 .
  47. "Yugabyte se lanza a la migración a la nube" . Techzine . 2 de febrero de 2023. Consultado el 15 de marzo de 2023 .
  • Sitio web oficial
  • yugabyte-db en GitHub
  • Consejos de YugabyteDB