Replicación y rendimiento

Habilitar la replicación afecta el rendimiento de una instancia de Bigtable. El efecto es positivo para algunas métricas y negativo en otras. Debes comprender los impactos posibles en el rendimiento antes de decidir habilitar la replicación.

Rendimiento de lectura

La replicación puede mejorar la capacidad de procesamiento de lectura, especialmente cuando usas un enrutamiento de varios clústeres. Además, la replicación puede reducir la latencia de lectura mediante colocando de los datos de Bigtable geográficamente más cerca de los usuarios de tu aplicación.

Capacidad de procesamiento de escritura

Aunque la replicación puede mejorar la disponibilidad y el rendimiento de lectura, no aumenta la capacidad de procesamiento de escritura. Una escritura en un clúster debe replicarse en todos los otros clústeres de la instancia. Como resultado, cada clúster gasta recursos de CPU para extraer cambios de los otros clústeres. En realidad, la capacidad de procesamiento de escritura podría disminuir porque la replicación requiere que cada clúster realice un trabajo adicional.

Por ejemplo, imagina que tienes una instancia de clúster único y el clúster tiene 3 nodos:

Instancia de clúster único que tiene 3 nodos

Si agregas nodos al clúster, el efecto en la capacidad de procesamiento de escritura es diferente a si habilitas la replicación mediante la adición de un segundo clúster de 3 nodos a la instancia.

Agregar nodos al clúster original: puedes agregar 3 nodos al clúster, para un total de 6 nodos. La capacidad de procesamiento de escritura para la instancia se duplica, pero los datos de la instancia están disponibles solo en una zona:

Instancia de clúster único que tiene 6 nodos

Con replicación: como alternativa, puedes agregar un segundo clúster con 3 nodos, para un total de 6 nodos. La instancia ahora escribe cada dato dos veces: cuando se recibe la escritura por primera vez y, nuevamente, cuando se replica en el otro clúster. La capacidad de procesamiento de escritura no aumenta y puede disminuir, pero tienes el beneficio de tener tus datos disponibles en dos zonas diferentes:

Instancia de dos clústeres que tiene 6 nodos

En estos ejemplos, la instancia de clúster único puede controlar el doble de capacidad de procesamiento de escritura que la instancia replicada, aunque los clústeres de cada instancia tengan un total de 6 nodos.

Latencia de replicación

Cuando usas el enrutamiento de varios clústeres, la replicación para Bigtable tiene una coherencia eventual. Como regla general, lleva más tiempo replicar datos a una distancia mayor. Los clústeres replicados en regiones diferentes generalmente tendrán una latencia de replicación más alta que los clústeres replicados en la misma región.

Uso de nodos

Como se explica en Capacidad de procesamiento de escritura, cuando una instancia usa la replicación, cada clúster de la instancia debe manejar el trabajo de replicación, además de la carga que recibe de las aplicaciones. Por este motivo, un clúster en una instancia de varios clústeres suele necesitar más nodos que un clúster en una instancia de un solo clúster con tráfico similar.

Perfiles de aplicación y enrutamiento de tráfico

Según tu caso de uso, utilizarás uno o más perfiles de aplicación para enrutar el tráfico de Bigtable. Cada perfil de aplicación utiliza el enrutamiento de varios clústeres o de clúster único. La elección del enrutamiento puede afectar el rendimiento.

El enrutamiento de varios clústeres puede minimizar la latencia. Un perfil de aplicación con enrutamiento de varios clústeres enruta automáticamente las solicitudes al clúster más cercano en una instancia desde la perspectiva de la aplicación, y, luego, las escrituras se replican en los otros clústeres de la instancia. Esta elección automática de la distancia más corta da como resultado la latencia más baja posible.

Un perfil de app que usa el enrutamiento de un solo clúster puede ser óptimo para ciertos casos prácticos, como separar cargas de trabajo o tener semántica de lectura después de escritura en un solo clúster, pero no reducirá la latencia en la forma en que lo hace el enrutamiento de varios clústeres.

Si quieres comprender cómo configurar los perfiles de tu aplicación para estos y otros casos prácticos, consulta Ejemplos de configuración de replicación.

Quitar rangos de filas

Si es posible, evita quitar un rango de filas en una instancia que usa la replicación porque la operación es lenta y el uso de CPU aumenta durante la operación.

¿Qué sigue?