Replicación

En esta página, se describe cómo se replican los datos en Spanner, los diferentes tipos de réplicas de Spanner y sus roles en las operaciones de lectura y escritura y los beneficios de la replicación.

Descripción general

Spanner replica automáticamente a nivel de bytes. Como se describe en Life of Spanner Reads and Writes (La vida de las lecturas y escrituras de Spanner), que aprovecha esta en el sistema de archivos subyacente en el que se basa. 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 falla la máquina o el disco.

Aunque el sistema subyacente de archivos distribuido ya que proporciona replicación a nivel de bytes, Spanner también replica los datos para brindar los beneficios adicionales de su disponibilidad y localidad geográfica. En general, todos los datos en Spanner se organizados en filas. Spanner crea varias copias o réplicas de estas filas y, luego, las almacena en diferentes áreas geográficas. Spanner usa una replicación síncrona basada en Paxos esquema, en el que réplicas de votación votan cada operación de escritura solicitud antes de que se confirme la escritura. Esta propiedad de replicación síncrona global te permite leer los datos más actualizados de cualquier réplica de Spanner de lectura y escritura o de solo lectura.

Spanner crea réplicas de cada división de la base de datos. Una división contiene un rango de filas contiguas, en la que las filas se ordenan por clave primaria. Todos los datos de una división se almacenan físicamente juntos en la réplica. Spanner entrega cada réplica a partir de una falla independiente zona. Para obtener más información, consulta la Descripción general de los esquemas.

Los conjuntos de divisiones se almacenan y replican con Paxos. Dentro de cada conjunto de réplicas de Paxos, se elige una réplica para que actúe como líder. Réplicas líderes manejan escrituras, mientras que las réplicas de lectura y escritura o de solo lectura pueden entregar una solicitud de lectura sin comunicarse con el líder. Si se solicita una lectura sólida, por lo general, se consulta al líder para asegurarse de que la réplica de solo lectura haya recibido todas las mutaciones recientes. Para supervisar la tasa de cambio y la cantidad de datos que se replica de la réplica líder a la región entre regiones en la configuración de tu instancia, consulta Supervisa la replicación de datos.

Beneficios de la replicación de Spanner

Entre los beneficios de la replicación de Spanner, se incluyen los siguientes:

  • Disponibilidad de los datos: Tener más copias de tus datos hace que los clientes que desean leerlos tengan mejor acceso a los datos. Además, Spanner aún puede entregar operaciones de escritura, aunque algunas de las réplicas no estén disponibles, ya que solo la mayoría de las réplicas de votación son necesarias para confirmar una operación de escritura.

  • Localidad geográfica: Tener la capacidad de colocar datos entre diferentes y continentes con Spanner significa que los datos pueden geográficamente más cerca y, por lo tanto, de un acceso más rápido, a los usuarios y servicios que los necesitan.

  • Experiencia de base de datos única: Spanner puede ofrecer una experiencia de base de datos única gracias a su replicación síncrona y su coherencia sólida global.

  • Desarrollo de aplicaciones más sencillo: Debido a que Spanner cumple con ACID y ofrece coherencia sólida global, los desarrolladores que trabajan con Spanner no tienen que agregar lógica adicional en sus aplicaciones para lidiar con la coherencia eventual, lo que facilita y agiliza el desarrollo de aplicaciones y su mantenimiento posterior.

Tipos de réplicas

Spanner tiene tres tipos de réplicas: réplicas de lectura y escritura, réplicas de solo lectura y réplicas testigo. Las regiones y la replicación topologías que forman configuraciones de instancias base correcciones de errores:

Puedes crear configuraciones de instancias personalizadas y agregar réplicas de solo lectura adicionales para configuraciones de instancias regionales y multirregionales.

En la siguiente tabla, se resumen los tipos de réplicas de Spanner y sus propiedades:

Tipo de réplica Puede votar Puede convertirse en líder Entrega operaciones de lectura Se puede configurar la réplica de forma manual
Lectura y escritura no
Solo lectura No no *
Testigo no no no

* Para obtener más información, consulta cómo crear una instancia con una la configuración de instancias.

Réplicas de lectura y escritura

Las réplicas de lectura y escritura son compatibles con las operaciones de lectura y escritura. Estas réplicas realizan las acciones que se mencionan a continuación:

  • Conservan una copia completa de tus datos.
  • Entregan operaciones de lectura.
  • Pueden votar para confirmar una operación de escritura.
  • Participan en la elección de liderazgo.
  • Son aptas para convertirse en líderes.
  • Son el único tipo de réplica que se usa en instancias regionales.

Réplicas de solo lectura

Las réplicas de solo lectura solo admiten operaciones de lectura, pero no de escritura. Estas réplicas no votan por líderes ni por la confirmación de operaciones de escritura, por lo que te permiten escalar tu capacidad de lectura sin aumentar el tamaño de quórum necesario para las operaciones de escritura. Las réplicas de solo lectura cumplen con las condiciones que se mencionan a continuación:

  • Mantienen una copia completa de tus datos, que se replica desde la réplica de lectura y escritura líder.
  • No participan en la votación para confirmar las operaciones de escritura. Por lo tanto, la ubicación de las réplicas de solo lectura nunca contribuye a la latencia de escritura.
  • No son aptas para convertirse en líderes.
  • Entregan operaciones de lectura.
  • Si es la réplica más cercana a tu aplicación, la réplica de solo lectura puede generalmente entregan lecturas inactivas sin necesidad de un recorrido de ida y vuelta a la región líder. y suponer que la obsolescencia es de al menos 15 segundos. También puedes usar lecturas dirigidas para enrutar transacciones de solo lectura y lecturas únicas a un tipo de réplica específico o una región en una configuración de instancia multirregión. Para obtener más información, consulta Lecturas dirigidas.

    Las operaciones de lectura sólidas pueden requerir la ida y vuelta a la réplica líder. El recorrido de ida y vuelta solo sirve para negociar la marca de tiempo y no enviar los datos reales del líder. La negociación de marca de tiempo es una operación eficiente de la CPU al líder, y, por lo general, los datos ya están en la ruta. Esta comunicación se controla automáticamente.

    Para obtener más información sobre las operaciones de lectura inactivas y sólidas, consulta la sección Operaciones de lectura.

Réplicas de solo lectura opcionales

Puedes crear una configuración de instancia personalizada, regional o multirregional. y agregar réplicas opcionales de solo lectura para escalar las lecturas y admitir una inactividad de baja latencia de lectura. Puedes agregar las ubicaciones que aparecen en Región opcional como una réplica opcional de solo lectura. Si no ves la opción de solo lectura ubicación de réplica, puedes solicitar una nueva región de réplica opcional de solo lectura.

Todas las réplicas opcionales de solo lectura están sujetas a costos de la capacidad de procesamiento, el almacenamiento y la replicación. Además, agregar réplicas de solo lectura a una configuración de instancia personalizada no cambia los ANS de Spanner de la configuración de la instancia. Si eliges agregar una réplica de solo lectura a un continente que está en un continente diferente al de la región líder, te recomendamos agregando un mínimo de dos réplicas de solo lectura. Esto ayuda a mantener una latencia de lectura baja en caso de que una de las réplicas de solo lectura deje de estar disponible.

Como práctica recomendada, primero prueba las cargas de trabajo de rendimiento en instancias que no sean de producción en la configuración de la instancia personalizada. Puedes consultar el panel de comparativas de latencia y capacidad de procesamiento interregional para obtener datos de latencia interregional mediana. Por ejemplo, si creas una campaña de instancia con la configuración base multirregional eur6 y un opcional de solo lectura en us-east1, la latencia de lectura potente esperada para un cliente en us-east1 es de unos 100 milisegundos, debido al tiempo de ida y vuelta al región líder en europe-west4. Las lecturas inactivas con suficiente obsolescencia no que incurren en la ida y vuelta y, por lo tanto, son mucho más rápidas. También puedes usar bloquear estadísticas y transacciones identificar las transacciones que generan latencias altas.

Para obtener instrucciones sobre cómo agregar réplicas opcionales de solo lectura, consulta Cómo crear una configuración de instancia personalizada.

Réplicas testigo

Las réplicas testigo no son compatibles con las operaciones de lectura, pero participan en la votación para confirmar operaciones de escritura. Estas réplicas facilitan la obtención de quórum para las operaciones de escritura sin los recursos de procesamiento y almacenamiento que requieren las réplicas de lectura y escritura para almacenar una copia completa de datos y entregar operaciones de lectura. Las réplicas testigo cumplen con las condiciones que se mencionan a continuación:

  • Se usan en instancias birregionales y multirregionales.
  • No mantengas una copia completa de los datos.
  • No entregan operaciones de lectura.
  • Votan para confirmar las operaciones de escritura.
  • Participan en la elección de líder, pero no son aptas para convertirse en una réplica de líder.

El rol de las réplicas en las operaciones de escritura y lectura

En esta sección, se describe el rol de las réplicas en las operaciones de escritura de Spanner y de lectura, lo que ayuda a comprender por qué Spanner usa en configuraciones birregionales y multirregionales.

En operaciones de escritura

Las solicitudes de escritura del cliente siempre se procesan primero en la réplica líder, incluso si Hay una réplica no líder que está más cerca del cliente o si la líder que la réplica se encuentre geográficamente distante del cliente. Si usas una configuración de instancia de región doble o multirregional y tu aplicación cliente se encuentra en una región que no es líder, Spanner usa el enrutamiento adaptado al líder para enrutar transacciones de lectura y escritura de forma dinámica y reducir la latencia en tu base de datos. Para obtener más información, consulta Enrutamiento consciente del líder.

La réplica líder registra la operación de escritura entrante y la reenvía, en paralelo, a las otras réplicas que son aptas para votar en esa operación de escritura. Cada réplica apta completa su operación escritura y, luego, responde a la líder con un voto sobre si la operación de escritura debe confirmarse. La operación de escritura se confirma cuando la mayoría de las réplicas de votación (o quórum de escritura) acuerdan confirmarla. En segundo plano, todas las réplicas restantes (no testigo) registran la operación de escritura. Si una réplica de lectura y escritura o de solo lectura se retrasa en el registro de las operaciones de escritura, puede solicitar los datos faltantes a otra réplica que tenga una copia completa y actualizada de los datos.

En operaciones de lectura

Las solicitudes de lectura del cliente se pueden ejecutar o requerir la comunicación con la réplica líder, según el modo de simultaneidad de la solicitud de lectura.

  • Las operaciones de lectura que son parte de una transacción de lectura y escritura se entregan desde la réplica líder, porque esta mantiene los bloqueos necesarios para aplicar la serializabilidad.

  • Los métodos de operación de lectura única (una operación de lectura fuera del contexto de una transacción) y las operaciones de lectura en transacciones de operaciones de solo lectura pueden requerir la comunicación con la líder, según el modo de simultaneidad de la lectura. Para obtener más información modos de simultaneidad, consulta Tipos de lectura.

    • Las solicitudes de lectura sólidas pueden ir a cualquier réplica de escritura y lectura o de solo lectura. Si la solicitud va a una réplica no líder, esa réplica debe comunicarse con la líder para ejecutar la operación de lectura.

    • Las solicitudes de lectura inactivas se dirigen al modo de solo lectura o de lectura y escritura disponibles más cercano. que está al día con la marca de tiempo de la solicitud. Esta puede ser la réplica líder si la líder es la réplica más cercana al cliente que emitió la solicitud de lectura.

Supervisa la replicación de datos

Puedes supervisar la tasa de cambio y la cantidad de datos que se replican de la réplica líder a las réplicas entre regiones en la configuración de tu instancia. La tasa de cambio se expresa en bytes por segundo y la cantidad de datos en bytes. Para ello, usa la métrica de supervisión Bytes replicados entre regiones (instance/cross_region_replicated_bytes_count).

Para ver esta métrica en la consola de Google Cloud, sigue estos pasos:

  1. En la consola de Google Cloud, ve a Monitoring.

    Ir a Monitoring

  2. En el menú de navegación, selecciona Explorador de métricas.

  3. En el campo Métrica, haz clic en el menú desplegable Seleccionar una métrica.

  4. En el campo Filtrar por nombre de recurso o métrica, selecciona Instancia de Cloud Spanner > Instancia > Bytes replicados entre regiones y, luego, haz clic en Aplicar.

    Esta métrica solo está disponible en Métricas activas si hay actividad de replicación entre regiones en tu instancia. De lo contrario, aparecerá en Métricas inactivas. De forma predeterminada, la IU filtra y muestra solo las métricas activas. Desmarca la marca de verificación Activo para ver tanto los activos como los inactivos métricas.

    El gráfico muestra la tasa de cambio (en bytes por segundo) de los datos replicados en todas las instancias de Spanner dentro del intervalo de tiempo especificado.

  5. Opcional: Para mostrar la cantidad de datos (en bytes) que se replican en lugar de la tasa de cambio:

    1. En el campo Agregación, haz clic en el menú desplegable Suma y selecciona Configurar alineador.
    2. En el campo Alignment function, haz clic en el menú desplegable Rate. selecciona Delta.
    3. Selecciona Table o Both como el tipo de tabla en lugar de Chart.

      La tabla muestra la cantidad de datos (en bytes) que se replicaron en el período especificado.

  6. Opcional: Para ver el uso de una instancia o un atributo en particular, sigue estos pasos:

    1. Usa el campo Filtro para agregar filtros, como un ID de instancia, un ID de base de datos, una región de origen, una región de destino o una etiqueta.
    2. Haz clic en Agregar filtro para agregar varios filtros.

Para ver una lista completa de las métricas de Google Cloud, consulta Métricas de Google Cloud.

¿Qué sigue?