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 se 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, almacena estas réplicas en diferentes ubicaciones geográficas en esas áreas. Spanner usa un esquema de replicación síncrono basado en Paxos en el que las réplicas de votación votan cada solicitud de escritura 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 lectura y escritura o de solo lectura de Spanner.
Spanner crea réplicas de cada división de la base de datos. Una división contiene un rango de filas contiguas, en el que las filas se ordenan según la 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 Acerca 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. Las réplicas líderes son responsables de administrar operaciones de escritura, mientras que cualquier réplica de lectura y escritura o solo de lectura puede entregar una solicitud de lectura sin comunicarse con la líder (aunque si se solicita una operación de lectura sólida, por lo general, se consulta a la líder para confirmar que la réplica de solo lectura haya recibido todas las mutaciones recientes).
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 puede entregar operaciones de escritura, incluso si algunas de las réplicas no están disponibles, ya que solo se requiere la mayoría de las réplicas de votación 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 única experiencia de base de datos gracias a su replicación síncrona y coherencia sólida global.
Desarrollo de aplicaciones más sencillo: Dado que Spanner es cumple con ACID y ofrece coherencia sólida global, con Spanner no tienen que agregar lógica adicional aplicaciones para lidiar con la coherencia eventual, lo que hace que las aplicaciones el desarrollo y el 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 . Configuración de instancias regionales base usa réplicas de lectura y escritura. Configuraciones base de instancias birregionales usar réplicas de lectura y escritura y testigo, mientras que parámetros de configuración de instancias multirregionales base usar una combinación de los tres tipos de réplicas. Puedes crear una configuración de instancias de Compute Engine y agregar réplicas de solo lectura adicionales para 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 | Sí | sí | sí | No |
Solo lectura | No | no | sí | sí* |
Testigo | Sí | 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 usado en instancias de región única.
Réplicas de solo lectura
Las réplicas de solo lectura solo admiten operaciones de lectura, pero no escrituras. Estas réplicas no votar por líderes o por confirmar escrituras, para que escalen tu lectura sin aumentar el tamaño del quórum necesario para las operaciones de escritura. Las réplicas de solo lectura cumplen con las condiciones que se mencionan a continuación:
- Mantener una copia completa de tus datos, que se replica a partir de la lectura y escritura o escalar horizontalmente con réplicas de lectura.
- Entregan operaciones de lectura.
- No participes 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.
Si es la réplica más cercana a tu aplicación, la réplica de solo lectura puede suelen entregar lecturas inactivas sin necesidad de un recorrido de ida y vuelta a la configuración región líder, suponiendo que la inactividad es de al menos 15 segundos. También puedes usar lecturas dirigidas para enrutar transacciones de solo lectura y lecturas individuales a un o a una región o un tipo de réplica específicos en una configuración de instancia multirregional. Para obtener más información, consulta Lecturas dirigidas.
Las lecturas sólidas pueden requerir un recorrido de ida y vuelta a la réplica líder. El recorrido de ida y vuelta es solo para negociar la marca de tiempo, no para enviar los datos reales desde el de la empresa. 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 lecturas inactivas y sólidas, consulta la En la sección de lectura.
No son aptas para convertirse en líderes.
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 se indican 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. No puedes cambiar la topología de replicación de los parámetros de configuración de instancias base, que .
Todas las réplicas opcionales de solo lectura están sujetas a la capacidad de procesamiento y el almacenamiento los costos. Además, agregar réplicas de solo lectura a un clúster la configuración de la instancia 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 se encuentra 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, prueba las cargas de trabajo de rendimiento en instancias que no son de producción en
primero la configuración de instancia personalizada. Puedes consultar el
Panel comparativo de latencia entre regiones y capacidad de procesamiento
para los datos de latencia mediana entre regiones. 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
Bloquea las estadísticas y las Estadísticas de transacciones para identificar las transacciones que generan latencias altas.
Para obtener instrucciones, consulta Crea una configuración de instancia personalizada.
Réplicas testigo
Las réplicas testigo no admiten operaciones de lectura, pero participan en la votación para confirmar escrituras. 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 entregar 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 líderes.
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 y de de lectura, lo que ayuda a comprender por qué Spanner usa o réplicas testigo en configuraciones 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 un servicio multirregional de Compute Engine y tu aplicación cliente se ubica en una ubicación región, Spanner usa el enrutamiento con reconocimiento de líderes para enrutar el acceso de lectura y escritura de forma dinámica para reducir la latencia en tu base de datos. Para ver más consulta Enrutamiento adaptado para líderes.
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 operación de lectura inactivas se envían a la réplica de lectura y escritura o de solo lectura disponible más cercana que se ajusta a 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.