Replicación

Esta página describe cómo se replican los datos en Cloud Spanner, los diferentes tipos de réplicas de Cloud Spanner y sus funciones en las lecturas y escrituras, y las ventajas de la replicación.

Descripción general de la replicación en Cloud Spanner

Cloud Spanner obtiene la replicación automáticamente en el nivel de bytes del sistema de archivos distribuido subyacente en el que se basa (como se describe en Vida de las lecturas y escrituras de Cloud Spanner). Cloud Spanner escribe las mutaciones de la base de datos en los archivos de este sistema de archivos, y el sistema de archivos se encarga de replicar y recuperar los archivos cuando hay un error en una máquina o un disco.

Aunque el sistema de archivos distribuido subyacente en el que se basa Cloud Spanner ya proporciona la replicación a nivel de bytes, Cloud Spanner también replica datos para proporcionar las ventajas adicionales de la disponibilidad de datos y la ubicación geográfica. En un nivel alto, todos los datos en Cloud Spanner se organizan en filas. Cloud Spanner crea varias copias, o "réplicas" de estas filas, y luego las almacena en diferentes áreas geográficas. Cloud Spanner utiliza un esquema de replicación síncrono y basado en Paxos, en el que las réplicas de votación (explicadas en detalle a continuación) votan cada vez que se solicita una escritura antes de que se confirme la escritura. Esta propiedad de replicación síncrona global ofrece la capacidad de leer los datos más actualizados de cualquier réplica de lectura y escritura o de solo lectura de Cloud Spanner.

Cloud Spanner crea réplicas de cada división de base de datos, para vincular los conceptos anteriores con la terminología y los conceptos presentados en el Esquema y modelo de datos. Una división es un conjunto de filas contiguas en una tabla de nivel superior, en la cual las filas se ordenan por clave principal. Todos los datos en una división se almacenan físicamente juntos en la réplica, y Cloud Spanner quita cada réplica de una zona de errores independiente.

Un conjunto de divisiones se almacena y replica mediante el uso de Paxos. Dentro de cada conjunto de réplicas de Paxos, se elige una réplica para que actúe como líder. Las réplicas líderes se encargan de gestionar las escrituras, mientras que las réplicas de lectura y escritura o de solo lectura pueden ofrecer una petición de lectura sin comunicarse con el líder (aunque si se solicita una lectura de consistencia fuerte, en algunos casos, es posible que se necesite consultar al líder para determinar una marca de tiempo en la cual leer). En la discusión a continuación se pueden obtener más detalles acerca de las funciones de las réplicas líderes y no líderes en lecturas y escrituras.

Ventajas de la replicación de Cloud Spanner

Como se mencionó anteriormente, las ventajas de la replicación de Cloud Spanner incluyen:

  • Disponibilidad de datos: tener más copias de los datos hace que los datos estén más disponibles para los clientes que desean leerlos. Además, Cloud Spanner aún puede publicar escrituras incluso si algunas de las réplicas no están disponibles, porque solo se requiere la mayoría de las réplicas de votación para poder confirmar una escritura.

  • Localidad geográfica: tener la capacidad de colocar datos en diferentes regiones y continentes con Cloud Spanner significa que los datos pueden estar geográficamente más cerca (y, por lo tanto, con acceso más rápido) a los usuarios y servicios que los necesitan.

  • Experiencia de base de datos única: debido a la replicación síncrona y la consistencia fuerte global, Cloud Spanner se comporta de la misma manera en cualquier escala, lo que brinda una experiencia de base de datos única.

  • Desarrollo de aplicaciones más sencillo: las transacciones ACID de Cloud Spanner con una consistencia fuerte global significa que los desarrolladores no tienen que agregar una lógica extra en las aplicaciones para lidiar con la consistencia débil, lo cual provoca que el desarrollo de aplicaciones y el posterior mantenimiento sean más rápidos y fáciles.

Tipos de réplica

Cloud Spanner tiene tres tipos de réplicas: réplicas de lectura y escritura, réplicas de solo lectura y réplicas de testigos. Las instancias de región única solo usan réplicas de lectura y escritura, mientras que las configuraciones de instancias de varias regiones usan una combinación de los tres tipos. (Si quieres saber por qué, consulta: ¿Por qué réplicas de solo lectura y de testigos?)

La siguiente tabla resume los tipos de réplicas de Cloud Spanner y sus propiedades, y las secciones a continuación describen cada tipo con más detalle.

Tipo de réplica Puede votar Puede convertirse en líder Puede ofrecer lecturas
Lectura y escritura
Solo lectura no no
Testigo no no

Lectura y escritura

Las réplicas de lectura y escritura admiten tanto lecturas como escrituras. Estas réplicas:

  • Mantienen una copia completa de los datos.
  • Ofrecen lecturas.
  • Pueden votar si confirmar una escritura.
  • Participan en la elección del liderazgo.
  • Cumplen los requisitos para convertirse en un líder.
  • Son el único tipo que se utiliza en instancias de región única.

Solo lectura

Las réplicas de solo lectura solo admiten lecturas (no escrituras). Estas réplicas:

  • Solo se usan en instancias de varias regiones.
  • Mantienen una copia completa de los datos, que se replican desde réplicas de lectura y escritura.
  • Ofrecen lecturas.
  • No participe en la votación para confirmar escrituras. Por lo tanto, la ubicación de las réplicas de solo lectura nunca contribuye a la latencia de escritura.
  • Por lo general, pueden ofrecer lecturas inactivas sin necesidad de un viaje de ida y vuelta a la región líder predeterminada, suponiendo que la inactividad es de al menos 15 segundos. Es posible que las lecturas fuertes requieran un viaje de ida y vuelta a la réplica líder. El sistema gestiona automáticamente esta comunicación. (Puedes obtener más información acerca de lecturas inactivas y fuertes a continuación).
  • No cumplen los requisitos para convertirse en un líder.

Testigo

Las réplicas de testigos no admiten lecturas, pero sí participan en la votación para confirmar escrituras. Estas réplicas:

  • Solo se usan en instancias de varias regiones.
  • No mantienen una copia completa de los datos.
  • No ofrecen lecturas.
  • Votan si deben confirmarse o no las escrituras.
  • Participan en la elección del líder, pero no cumplen los requisitos para convertirse en líderes.

Funciones de las réplicas en escrituras y lecturas

Esta sección describe la función de las réplicas en las escrituras y lecturas de Cloud Spanner, lo cual es útil para entender por qué Cloud Spanner usa réplicas de solo lectura y de testigos en configuraciones de varias regiones.

En escrituras

Las peticiones de escritura de clientes siempre van primero a la réplica líder, incluso aunque haya una réplica no líder más cercana al cliente o la réplica líder esté geográficamente lejos del cliente.

La réplica líder registra la escritura entrante y la reenvía, en paralelo, a las otras réplicas que cumplen los requisitos para votar en esa escritura. Cada réplica que cumple con los requisitos completa su escritura, y luego responde al líder con un voto sobre si la escritura debe confirmarse. La escritura se confirma cuando la mayoría de las réplicas de votación (o "cuórum de escritura") aceptan confirmar la escritura. En el fondo, todas las réplicas restantes (no testigo) registran la escritura. Si una réplica de lectura y escritura o de solo lectura se retrasa en las escrituras de registro, puede solicitar los datos que faltan a otra réplica para tener una copia de los datos completa y actualizada.

En lecturas

Las peticiones de lectura del cliente se pueden ejecutar en la réplica líder o pueden requerir comunicarse con ella, según el modo de simultaneidad de la petición de lectura.

  • Las lecturas que forman parte de una transacción de lectura y escritura se ofrecen desde la réplica líder, porque la réplica líder conserva los bloqueos necesarios para aplicar la serialización.

  • Los métodos de lectura única (una lectura fuera del contexto de una transacción) y es posible que las lecturas en las transacciones de solo lectura requieran la comunicación con el líder, según el modo de simultaneidad de la lectura. (Puedes obtener más información sobre estos modos de simultaneidad en los Tipos de lectura).

    • Las peticiones de lectura fuerte pueden ir a cualquier réplica de lectura y escritura o de solo lectura. Si la petición es para una réplica no líder, esa réplica debe comunicarse con el líder para poder ejecutar la lectura.

    • Las peticiones de lectura inactiva van a la réplica de lectura y escritura o de solo lectura más cercana disponible que esté atrapada en la marca de tiempo de la petición. Esta puede ser la réplica líder si se trata de la que más cerca se encuentra del cliente que emitió la petición de lectura.

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Cloud Spanner Documentation