stringtranslate.com

SQL distribuido

Una base de datos SQL distribuida es una única base de datos relacional que replica datos en varios servidores. Las bases de datos SQL distribuidas son muy consistentes y la mayoría admite la coherencia entre bastidores, centros de datos y redes de área amplia , incluidas las zonas de disponibilidad de la nube y las zonas geográficas de la nube. Las bases de datos SQL distribuidas suelen utilizar los algoritmos Paxos o Raft para lograr el consenso entre varios nodos.

A veces, las bases de datos SQL distribuidas se denominan NewSQL , pero NewSQL es un término más inclusivo que incluye bases de datos que no son bases de datos distribuidas .

Historia

Spanner de Google popularizó el concepto moderno de base de datos SQL distribuida. Google describió la base de datos y su arquitectura en un informe técnico de 2012 llamado "Spanner: la base de datos distribuida globalmente de Google". El informe describía que Spanner había evolucionado desde un almacén de valores clave similar a una gran tabla a una base de datos temporal de múltiples versiones donde los datos se almacenan en "tablas semirrelacionales esquematizadas". [1]

Spanner utiliza relojes atómicos con el algoritmo Paxos para lograr un consenso con respecto al estado distribuido entre servidores. En 2010, y en una implementación anterior, ClustrixDB (ahora MariaDB Xpand) pasó de ser un dispositivo de hardware a una base de datos de software basada en Paxos [2] y luego fue adquirida por MariaDB [3] y agregada a una oferta de nube SaaS llamada SkySQL . [4] En 2015, dos ingenieros de Google dejaron la empresa para crear Cockroach DB , que logra resultados similares utilizando el algoritmo Raft sin relojes atómicos ni hardware personalizado. [5]

Spanner se utiliza principalmente para casos de uso transaccionales y de series temporales. Sin embargo, Google profundizó esta investigación con un artículo de seguimiento sobre Google F1, que describe como una base de datos de procesamiento transaccional/analítico híbrida construida sobre Spanner. [1]

Arquitectura

Las bases de datos SQL distribuidas tienen las siguientes características generales:

De acuerdo con el teorema CAP , las bases de datos SQL distribuidas son "CP" o consistentes y tolerantes a particiones. Algorítmicamente, sacrifican la disponibilidad, ya que una falla de un nodo principal puede hacer que la base de datos no esté disponible para escrituras.

Todas las implementaciones de SQL distribuido requieren algún tipo de sincronización temporal para garantizar la coherencia. Con la excepción de Spanner, la mayoría no utiliza hardware personalizado para proporcionar relojes atómicos. Spanner puede sincronizar escrituras con garantías temporales. Las implementaciones sin hardware personalizado requieren que los servidores comparen los desfases de reloj y, potencialmente, vuelvan a intentar las lecturas. [8]

Implementaciones de SQL distribuido

Comparado con NewSQL

CockroachDB, YugabyteDB y otras se han referido a sí mismas como bases de datos NewSQL . Algunas de las bases de datos NewSQL, como Citus y Vitess, tienen arquitecturas fundamentalmente diferentes, pero Matthew Aslett, que acuñó el término, las citó como ejemplos de NewSQL. [11] En esencia, las bases de datos SQL distribuidas se construyen desde cero y las bases de datos NewSQL incluyen tecnologías de replicación y fragmentación agregadas a bases de datos relacionales cliente-servidor existentes, como PostgreSQL . [12] Algunos expertos definen las bases de datos DistributedSQL como un subconjunto más específico de las bases de datos NewSQL. [13]

Referencias

  1. ^ abc https://storage.googleapis.com/pub-tools-public-publication-data/pdf/41344.pdf [ URL básica PDF ]
  2. ^ Higginbotham, Stacey (3 de mayo de 2010). "Clustrix crea el Santo Grial de la escalabilidad web: una base de datos escalable". gigaom.com .
  3. ^ "MariaDB adquiere Clustrix". 20 de septiembre de 2018.
  4. ^ Baer (dbInsight), Tony. "Para MariaDB, es hora de juntar las piezas". ZDNet .
  5. ^ Morgan, Timothy Prickett (22 de febrero de 2017). "Google Spanner inspira a CockroachDB a superarlo". La próxima plataforma .
  6. ^ El futuro de las bases de datos: SQL distribuido y MariaDB ® , consultado el 21 de diciembre de 2022
  7. ^ "La arquitectura de una base de datos SQL distribuida". 23 de septiembre de 2020 – vía www.youtube.com.
  8. ^ "Vivir sin relojes atómicos". Cockroach Labs . 21 de abril de 2020.
  9. ^ "citus/LICENCIA en 185ac5e01e8c62757c81cdc1d92cffcf6b55f500 · citusdata/citus". GitHub . Consultado el 26 de septiembre de 2024 .
  10. ^ "YDB es una base de datos SQL distribuida de código abierto que combina alta disponibilidad y escalabilidad con fuerte consistencia y transacciones ACID". ydb.tech .
  11. ^ "De qué hablamos cuando hablamos de NewSQL: Demasiada información".
  12. ^ "Bases de datos SQL frente a NoSQL: ¿cuál es la diferencia?". www.ibm.com . 12 de junio de 2022.
  13. ^ Prabagaren, Gokul (30 de octubre de 2019). "NewSQL: la próxima evolución en bases de datos". Medium .