Replicación y rendimiento

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

Rendimiento de lectura

La replicación puede mejorar el rendimiento de lectura, sobre todo cuando se usa el enrutamiento entre clústeres. Además, la replicación puede reducir la latencia de lectura al colocar los datos de Bigtable geográficamente más cerca de los usuarios de tu aplicación.

Rendimiento de escritura

Aunque la replicación puede mejorar la disponibilidad y el rendimiento de lectura, no aumenta el rendimiento de escritura. Una escritura en un clúster debe replicarse en todos los demás clústeres de la instancia. Por lo tanto, cada clúster está gastando recursos de CPU para extraer los cambios de los demás clústeres. El rendimiento de escritura puede disminuir porque la replicación requiere que cada clúster realice trabajo adicional.

Por ejemplo, supongamos que tienes una instancia de un solo clúster y que el clúster tiene 3 nodos:

Instancia de un solo clúster con 3 nodos

Si añades nodos al clúster, el efecto en el rendimiento de escritura es diferente que si habilitas la replicación añadiendo un segundo clúster de 3 nodos a la instancia.

Añadir nodos al clúster original: puedes añadir 3 nodos al clúster, lo que hace un total de 6 nodos. El rendimiento de escritura de la instancia se duplica, pero los datos de la instancia solo están disponibles en una zona:

Instancia de un solo clúster con 6 nodos

Con replicación: también puedes añadir un segundo clúster con 3 nodos, lo que da un total de 6 nodos. Ahora, la instancia escribe cada fragmento de datos dos veces: cuando se recibe la escritura por primera vez y de nuevo cuando se replica en el otro clúster. El rendimiento de escritura no aumenta y puede disminuir, pero te beneficias de tener tus datos disponibles en dos zonas diferentes:

Instancia de dos clústeres con 6 nodos

En estos ejemplos, la instancia de un solo clúster puede gestionar el doble de rendimiento 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 a varios clústeres, la replicación de Bigtable es coherente con el tiempo. Por lo general, se tarda más en replicar datos a mayor distancia. Los clústeres replicados en regiones diferentes suelen tener una latencia de replicación mayor que los clústeres replicados en la misma región.

Uso de nodos

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

Perfiles de aplicaciones y enrutamiento de tráfico

En función de su caso práctico, usará uno o varios perfiles de aplicación para enrutar su tráfico de Bigtable. Cada perfil de aplicación usa el enrutamiento multiclúster o de un solo clúster. La elección del enrutamiento puede afectar al rendimiento.

El enrutamiento multiclúster puede minimizar la latencia. Un perfil de aplicación con enrutamiento a varios clústeres enruta automáticamente las solicitudes al clúster más cercano de una instancia desde la perspectiva de la aplicación. Después, las escrituras se replican en los demás 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 aplicación que usa el enrutamiento de un solo clúster puede ser óptimo para determinados 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 de la misma forma que el enrutamiento de varios clústeres.

Para saber cómo configurar los perfiles de tu aplicación en estos y otros casos prácticos, consulta Ejemplos de ajustes de replicación.

Eliminar intervalos de filas

Si es posible, evita eliminar un intervalo de filas en una instancia que use la replicación, ya que la operación es lenta y el uso de la CPU aumenta durante la operación.

Siguientes pasos