Instancias

En esta página, se presentan los conceptos de instancias de Cloud Spanner, opciones de configuración de instancias y nodos. También se describen las diferencias y los pros y contras entre las instancias regionales y multirregionales. Si no estás familiarizado con el funcionamiento de la replicación en Cloud Spanner, primero consulta Replicación.

Descripción general de las instancias

Para usar Cloud Spanner, primero debes crear una instancia de Cloud Spanner dentro de tu proyecto de Google Cloud. Esta instancia es una asignación de los recursos que las bases de datos de Cloud Spanner creadas en la instancia usan.

La creación de instancias incluye dos opciones importantes: la configuración de instancia y el conteo de nodos. Estas opciones determinan la ubicación y la cantidad de recursos de almacenamiento y entrega que tiene la instancia. La configuración de una instancia es permanente, pero puedes cambiar el conteo de nodos más tarde si es necesario.

Configuración de instancias

La configuración de la instancia define la posición geográfica y la replicación de sus bases de datos. Cuando creas una instancia, debes configurarla como regional (es decir, todos los recursos están contenidos en una sola región de Google Cloud) o multirregional (es decir, los recursos abarcan más de una región). Esta elección se realiza seleccionando una configuración de instancia, que determina dónde se almacenan los datos de la instancia. Las opciones de configuración regionales y multirregionales se describen con más detalle a continuación.

Conteo de nodos

Cuando creas una instancia, además de elegir dónde se almacenan tus datos, debes elegir el conteo de nodos o la cantidad de nodos que asignarás a esa instancia. El conteo de nodos que elijas determina la cantidad de recursos de entrega y almacenamiento disponibles para las bases de datos en esa instancia.

Para ilustrar la relación entre nodos, réplicas e instancias, considera el siguiente diagrama de una configuración de instancia regional.

Una instancia de 4 nodos creada en una configuración de instancia regional

En el diagrama, se representa una instancia de 4 nodos creada en una configuración de instancia regional. Cada zona en el diagrama contiene una réplica completa de la base de datos. En cada zona, 4 tareas de entrega le entregan contenido a la réplica de la base de datos.

Una instancia con N nodos tiene N tareas de entrega en cada zona de la configuración de la instancia, y cada zona entrega contenido a una réplica completa de la base de datos.

Cada nodo proporciona hasta 2 TB de almacenamiento. Los valores máximos de capacidad de procesamiento de lectura y escritura que pueden proporcionar los nodos dependen de la configuración de la instancia, del diseño del esquema y de las características del conjunto de datos. Consulta las secciones sobre el rendimiento de la configuración regional y el rendimiento de la configuración multirregional para obtener más detalles.

Después de crear una instancia, puedes agregarle nodos. En la mayoría de los casos, también puedes quitar nodos. A continuación, se detallan los casos en los que no puedes quitar nodos:

  • Quitar los nodos hace que tu instancia deba almacenar más de 2 TB de datos por nodo.
  • Debido a tu historial de uso, Cloud Spanner creó una gran cantidad de divisiones para los datos de tu instancia y no podrá administrarlas si quitas los nodos.

Cuando quites nodos, supervisa el uso de CPU y las latencias de solicitud en Cloud Monitoring a fin de garantizar que el uso de CPU permanezca por debajo del 65% para las instancias regionales y del 45% para cada región en instancias multirregionales. Es posible que experimentes un aumento temporal en las latencias de solicitud mientras se quitan los nodos.

Puedes usar Cloud Console, la herramienta de línea de comandos de gcloud, o las bibliotecas cliente para cambiar la cantidad de nodos.

Cloud Spanner no tiene un modo de suspensión. Los nodos de Cloud Spanner son recursos dedicados y, aun cuando no ejecutas una carga de trabajo, realizan con frecuencia tareas en segundo plano para optimizar y proteger tus datos.

Nodos frente a réplicas

Si necesitas escalar verticalmente los recursos de entrega y almacenamiento en tu instancia, agrega más nodos a ella. Ten en cuenta que agregar un nodo no aumenta la cantidad de réplicas (que se fijan para una configuración dada), sino que aumenta los recursos que cada réplica tiene en la instancia. Si agregas nodos, cada réplica tendrá más CPU y RAM, lo que aumenta la capacidad de procesamiento de la réplica (es decir, se pueden realizar más lecturas y escrituras por segundo). Efectivamente, la cantidad de servidores de Cloud Spanner en cada una de las réplicas de la instancia es la misma que la cantidad de nodos de la instancia. Por lo tanto, la cantidad total de servidores en una instancia de Cloud Spanner es la cantidad de nodos que la instancia multiplicó por la cantidad de réplicas en la instancia.

Configuraciones regionales

Los servicios de Google Cloud están disponibles en diferentes ubicaciones de América del Norte, América del Sur, Europa, Asia y Australia. Si tus usuarios y servicios se encuentran dentro de una misma región, elige una configuración de instancia regional para las lecturas y escrituras de latencia más baja.

Opciones de configuración disponibles

Cloud Spanner ofrece las siguientes opciones de configuración de instancias regionales:

Nombre de la región Descripción de la región
América
northamerica-northeast1 Montreal
southamerica-east1 São Paulo
us-central1 Iowa
us-east1 Carolina del Sur
us-east4 Virginia del Norte
us-west1 Oregón
us-west2 Los Ángeles
us-west3 Salt Lake City
us-west4 Las Vegas
Europa
europe-north1 Finlandia
europe-west1 Bélgica
europe-west2 Londres
europe-west3 Fráncfort
europe-west4 Países Bajos
europe-west6 Zúrich
Asia-Pacífico
asia-south1 Bombay
asia-east1 Taiwán
asia-east2 Hong Kong
asia-northeast1 Tokio
asia-northeast2 Osaka
asia-northeast3 Seúl
asia-southeast1 Singapur
asia-southeast2 Yakarta
australia-southeast1 Sídney

Para cualquier configuración regional, Cloud Spanner mantiene 3 réplicas de lectura y escritura, cada una dentro de una zona diferente de Google Cloud en esa región. Cada réplica de lectura y escritura contiene una copia completa de tu base de datos operativa que puede entregar solicitudes de lectura y escritura y de solo lectura. Cloud Spanner usa réplicas en zonas diferentes para que, si se produce un error en una sola zona, tu base de datos permanezca disponible.

Replicación

Las opciones de configuración regionales contienen exactamente 3 réplicas de lectura y escritura. Como se describe en Replicación, cada mutación de Cloud Spanner requiere un quórum de escritura compuesto por la mayoría de las réplicas de votación. Los quórums de escritura se forman a partir de dos de las tres réplicas en las opciones de configuración regionales.

Prácticas recomendadas

Para obtener un rendimiento óptimo, sigue estas prácticas recomendadas:

  • Diseña un esquema que evite los hotspots y otros problemas de rendimiento.
  • Coloca los recursos de procesamiento críticos dentro de la misma región que tu instancia de Cloud Spanner.
  • Aprovisiona suficientes nodos de Cloud Spanner para mantener el uso de CPU total de alta prioridad por debajo del 65%.

Rendimiento

Cuando sigues las prácticas recomendadas descritas con anterioridad, cada nodo de Cloud Spanner puede proporcionar hasta 10,000 consultas por segundo (QPS) de lecturas o 2,000 QPS de escrituras (escritura de filas individuales a 1 KB de datos por fila).

Opciones de configuración multirregionales

Como se describió con anterioridad, las opciones de configuración regionales de Cloud Spanner replican los datos entre varias zonas dentro de una misma región. Sin embargo, si tu aplicación a menudo necesita leer datos de varias ubicaciones geográficas (por ejemplo, para entregar datos a usuarios de América del Norte y Asia) o si tus escrituras se originan en una ubicación diferente a tus lecturas (por ejemplo, grandes cargas de trabajo de escritura en América del Norte y grandes cargas de trabajo de lectura en Europa), una configuración regional podría no ser óptima.

Las opciones de configuración multirregionales te permiten replicar los datos de la base de datos no solo en varias zonas, sino en varias zonas de varias regiones, según lo define la configuración de la instancia. Estas réplicas adicionales te permiten leer datos con baja latencia desde varias ubicaciones cercanas o dentro de las regiones en la configuración. Sin embargo, existen pros y contras, ya que, en una configuración multirregional, las réplicas de quórum (lectura y escritura) se distribuyen en más de una región. Por lo tanto, pueden generar latencia de red adicional cuando estas réplicas se comunican entre sí para votar escrituras. En otras palabras, las opciones de configuración multirregionales permiten que la aplicación obtenga lecturas más rápidas en más lugares a costa de un pequeño aumento en la latencia de escritura.

Opciones de configuración disponibles

Un continente

Name Ubicación Regiones de lectura y escritura Regiones de solo lectura Región testigo
asia1 Asia Tokio: asia-northeast1 L, 2R
Osaka: asia-northeast2 2R
None Seúl: asia-northeast3
eur3 Europa Bélgica: europe-west1 L, 2R
Países Bajos: europe-west4 2R
None Finlandia: europe-north1
eur5 Europa Londres: europe-west2 L2R
Bélgica: europe-west1 2R
None Países Bajos: europe-west4
nam3 Norteamérica Virginia del Norte: us-east4 L2R
Carolina del Sur: us-east1 2R
None Iowa: us-central1
nam6 Norteamérica Iowa: us-central1 L2R
Carolina del Sur: us-east1 2R
Oregón: us-west1 1R
Los Ángeles: us-west2 1R
Oklahoma: us-central2
nam10 Norteamérica Iowa: us-central1 L,2R
Salt Lake City: us-west3 2R
None Oklahoma: us-central2
nam11 Norteamérica Iowa: us-central1 L2R
Carolina del Sur: us-east1 2R
None Oklahoma: us-central2
  • L: región líder predeterminada

  • 1R: 1 réplica en la región

  • 2R: 2 réplicas en la región

Tres continentes

Name Ubicaciones Regiones de lectura y escritura Regiones de solo lectura Región testigo
nam-eur-asia1 Norteamérica
Europa
Asia
Iowa: us-central1 L,2R
Oklahoma: us-central2 2R
Bélgica: europe-west1 2R
Taiwán: asia-east12R
Carolina del Sur: us-east1

Ventajas

Las instancias multirregionales ofrecen los siguientes beneficios principales:

  • 99.999% de disponibilidad: mayor que el 99.99% de disponibilidad que ofrecen las opciones de configuración regionales de Cloud Spanner.

  • Distribución de datos: Cloud Spanner replica tus datos de manera automática entre regiones con garantías de coherencia sólida. Esto permite que tus datos se almacenen donde se usan, lo que puede reducir la latencia y mejorar la experiencia del usuario.

  • Coherencia externa: aunque Cloud Spanner se replica en ubicaciones distantes según la geografía, puedes usar Cloud Spanner como si fuera una base de datos que se ejecuta en una sola máquina. Se garantiza que las transacciones son serializables, y el orden de las transacciones dentro de la base de datos es el mismo que el orden en el que los clientes observan las transacciones que se han realizado. La coherencia externa es una garantía más sólida que la “coherencia sólida”, que ofrecen otros productos. Obtén más información sobre esta propiedad en la página sobre TrueTime y la coherencia externa.

Replicación

Cada configuración multirregional contiene dos regiones que se designan como regiones de lectura y escritura, cada una de las cuales contiene dos réplicas de lectura y escritura. Una de estas regiones de lectura y escritura se designa como la región líder predeterminada, lo que significa que contiene las réplicas líderes de la base de datos. Cloud Spanner también coloca una réplica de testigo en una tercera región llamada región testigo.

Cada vez que un cliente emite una mutación a tu base de datos, se crean quórums de escritura, que consisten en una de las réplicas de la región líder predeterminada y dos de las cuatro réplicas de votación adicionales. (El quórum puede estar formado por réplicas de dos o tres de las regiones que conforman tu configuración, según las otras réplicas que participen en el voto). Además de estas 5 réplicas de votación, la configuración también puede contener réplicas de solo lectura para entregar lecturas de baja latencia. Las regiones que contienen réplicas de solo lectura se denominan regiones de solo lectura.

En general, las regiones de votación en una configuración multirregional se ubican geográficamente cerca, a menos de mil millas de distancia, para formar un quórum de baja latencia que permite escrituras rápidas (más información). Sin embargo, las regiones se encuentran a una distancia suficiente (en general, al menos, unas cientos de millas) para evitar fallas coordinadas.

En las siguientes secciones, se describe cada uno de estos tipos de regiones con más detalle y se proporciona orientación sobre cómo colocar las cargas de trabajo de escritura y lectura según corresponda.

Tipos de región

Regiones de lectura y escritura

Como se describió con anterioridad, cada configuración multirregional contiene dos regiones de lectura y escritura, cada una de las cuales contiene dos réplicas de lectura y escritura. Una de estas regiones de lectura y escritura se designa como la región líder predeterminada. Se elegirá una líder entre las réplicas en la región líder predeterminada para cada división. En caso de una falla de réplica líder, la otra réplica en la región líder predeterminada asume de forma automática el liderazgo. De hecho, las réplicas líderes ejecutan verificaciones de estado en sí mismas y pueden renunciar al liderazgo de forma preventiva si detectan que están en mal estado. En condiciones normales, cuando están disponibles las réplicas en la región líder predeterminada, la región líder predeterminada contiene las réplicas líderes y, por lo tanto, se procesan las escrituras primero.

La segunda región de lectura y escritura contiene las réplicas adicionales que son aptas para ser líderes. En el improbable caso de que se pierdan todas las réplicas en la región líder predeterminada, se eligen réplicas líderes nuevas de la segunda región de lectura y escritura.

Regiones de solo lectura

Las regiones de solo lectura contienen réplicas de solo lectura, que pueden entregar lecturas de baja latencia a los clientes que se encuentran fuera de las regiones de lectura y escritura.

Regiones testigo

Una región testigo contiene una réplica testigo, que se usa para votar escrituras. Los testigos se vuelven importantes en el raro evento de que las regiones de lectura y escritura no estén disponibles.

Prácticas recomendadas

Para obtener un rendimiento óptimo, sigue estas prácticas recomendadas:

  • Diseña un esquema que evite los hotspots y otros problemas de rendimiento.
  • Para obtener una latencia de escritura óptima, ubica los recursos de procesamiento de las cargas de trabajo con alto volumen de operaciones de escritura en la región líder predeterminada o cerca de ella.
  • A fin de obtener un rendimiento de lectura óptimo fuera de la región líder predeterminada, usa un estado de inactividad de al menos 15 segundos.
  • A fin de evitar la dependencia de una sola región para tus cargas de trabajo, coloca recursos de procesamiento críticos en al menos dos regiones. Una buena opción es colocarlos junto a las dos regiones de lectura y escritura diferentes para que ninguna interrupción en la región afecte a toda la aplicación.
  • Aprovisiona suficientes nodos de Cloud Spanner para mantener el uso de CPU total de alta prioridad por debajo del 45% en cada región.

Rendimiento

Cada configuración de Cloud Spanner tiene características de rendimiento ligeramente diferentes según la topología de replicación.

Si sigues las prácticas recomendadas descritas con anterioridad, cada nodo de Cloud Spanner puede proporcionar el siguiente rendimiento aproximado:

Configuración multirregional Lecturas máximas aproximadas (QPS por región) Escrituras máximas aproximadas (QPS en total)
asia1 7,000 1,800
eur3 7,000 1,800
eur5 7,000 1,800
nam3 7,000 1,800
nam6 7,000 en us-central1 y us-east1
3,500 en us-west1 y us-west2
1,800
nam10 7,000 1,800
nam11 7,000 1,800
nam-eur-asia1 7,000 1,000

Ten en cuenta que la orientación de lectura se proporciona por región (porque las lecturas se pueden entregar desde cualquier lugar), mientras que la orientación de escritura es para toda la configuración. La orientación de escritura supone que escribes filas individuales a 1 KB de datos por fila.

Pros y contras: opciones de configuración regionales frente a multirregionales

Configuración Disponibilidad Latencia Costo Localidad de datos
Regional 99.99% Latencias bajas de escritura dentro de la región. Menor costo, consulta Precios. Habilita la administración de datos geográficos.
Multirregional 99.999% Latencia baja de lectura de varias regiones geográficas. Mayor costo, consulta Precios. Distribuye datos en varias regiones de la configuración.

Próximos pasos