Descripción general de la replicación

La replicación de Cloud Bigtable te permite aumentar la disponibilidad y la durabilidad de los datos, ya que los copia en varias regiones o en varias zonas de la misma región. Además, puedes aislar las cargas de trabajo, porque tienes la posibilidad de enrutar distintos tipos de solicitudes a clústeres diferentes.

En esta página, se explica cómo funciona la replicación en Cloud Bigtable y se describen algunos casos prácticos comunes de replicación. También se explica el modelo de coherencia que Cloud Bigtable usa cuando se habilita la replicación y se describe qué ocurre cuando un clúster se conmuta por error a otro clúster.

Antes de leer esta página, debes familiarizarte con la descripción general de Cloud Bigtable.

Usa la replicación

Para usar la replicación en una instancia de Cloud Bigtable, crea una nueva instancia con más de un clúster o agrega clústeres a una instancia existente.

Cloud Bigtable admite hasta cuatro clústeres replicados ubicados en las zonas de Google Cloud Platform en las que Cloud Bigtable está disponible. Los clústeres de una instancia deben estar en zonas únicas. Puedes crear un clúster adicional en cualquier zona en la que Cloud Bigtable esté disponible. La ubicación de clústeres en diferentes zonas o regiones te permite acceder a tus datos, incluso si una zona o región de GCP deja de estar disponible.

Cuando creas una instancia con más de un clúster, Cloud Bigtable comienza de inmediato a sincronizar tus datos entre las zonas en las que se encuentran y crea una copia independiente y separada de los datos en cada zona en la que la instancia tiene un clúster. Del mismo modo, cuando agregas un clúster nuevo a una instancia existente, Cloud Bigtable copia tus datos existentes desde la zona del primer clúster hasta la zona del clúster nuevo y, a continuación, sincroniza los cambios en tus datos entre las zonas.

Cloud Bigtable replica automáticamente los cambios que se realizan en tus datos, incluidos todos los tipos de cambios siguientes:

  • Actualizaciones de los datos en las tablas existentes
  • Tablas nuevas y borradas
  • Familias de columnas que se agregaron y quitaron
  • Cambios en la política de recolección de elementos no utilizados de una familia de columnas

Cloud Bigtable considera todos los clústeres de tu instancia como el principal, por lo que puedes realizar lecturas y escrituras en cada uno de ellos. También puedes configurar tu instancia para que las solicitudes de los distintos tipos de aplicaciones se enruten a clústeres diferentes.

Casos prácticos

En esta sección, se describen algunos casos prácticos comunes de la replicación de Cloud Bigtable. Si quieres descubrir cuál es la mejor configuración para cada caso práctico y obtener sugerencias de implementación, consulta Ejemplos de configuración de la replicación.

Aísla las aplicaciones en uso de las lecturas por lotes

Cuando usas un solo clúster para ejecutar un gran trabajo de estadísticas por lotes que realiza varias lecturas grandes, junto con una aplicación que lleva a cabo una mezcla de lecturas y escrituras, ese gran trabajo por lotes puede ralentizar los procesos para los usuarios de la aplicación. Con la replicación, puedes usar los perfiles de aplicaciones con enrutamiento de un solo clúster para enrutar los trabajos de estadísticas por lotes y el tráfico de aplicaciones a diferentes clústeres, de modo que los trabajos por lotes no afecten a los usuarios de tus aplicaciones. Obtén más información sobre cómo implementar este caso práctico.

Mejora la disponibilidad

Si una instancia tiene un solo clúster, la durabilidad y la disponibilidad de tus datos estará limitada según la zona en la que se encuentre el cluster. La replicación puede mejorar la durabilidad y la disponibilidad, ya que almacena copias independientes de todos tus datos en varias zonas o regiones, y realiza la conmutación por error automáticamente entre los clústeres si es necesario. Obtén más información sobre cómo implementar este caso práctico.

Proporciona copias de seguridad casi en tiempo real

Por ejemplo, en algunos casos, si no te puedes permitir leer datos inactivos, siempre deberás enrutar las solicitudes a un solo clúster. Sin embargo, igual puedes usar la replicación; para ello, solo debes controlar las solicitudes con un clúster y mantener el otro como una copia de seguridad casi en tiempo real. Si el primer clúster deja de estar disponible, puedes reducir el tiempo de inactividad con una conmutación por error manual al clúster de respaldo. Obtén más información sobre cómo implementar este caso práctico.

Asegúrate de que tus datos tengan una presencia global

Puedes configurar la replicación en ubicaciones de todo el mundo para acercar tus datos a tus clientes. Por ejemplo, puedes crear una instancia con clústeres replicados en EE.UU., Europa y Asia, y configurar perfiles de aplicación para enrutar el tráfico de aplicaciones al clúster más cercano. Obtén más información sobre cómo implementar este caso práctico.

Modelo de coherencia

De forma predeterminada, la replicación para Cloud Bigtable tiene coherencia eventual. Esto significa que cuando escribes un cambio en un clúster, a la larga, podrás leerlo en otros clústeres de la instancia, pero solo después de que el cambio se replique entre los clústeres.

Si tu instancia funciona correctamente, la replicación solo toma unos segundos o minutos, nunca horas. Sin embargo, si escribes una gran cantidad de datos en un clúster, o si este se encuentra sobrecargado o no disponible temporalmente, es posible que la replicación demore un poco. Además, la replicación puede llevar más tiempo si los clústeres están muy separados. En consecuencia, no siempre es seguro suponer que estás leyendo el último valor escrito o, que, con esperar unos segundos después de cada escritura, le das a Cloud Bigtable el tiempo suficiente para replicar el cambio.

Si necesitas otra garantía de coherencia, Cloud Bigtable también proporciona coherencia en la lectura de tus escrituras cuando se habilita la replicación, lo que garantiza que una aplicación nunca lea datos más antiguos que sus escrituras más recientes. Para obtener este tipo de coherencia en un grupo de aplicaciones, cada aplicación debe usar un perfil configurado para el enrutamiento en un solo clúster, y todos los perfiles deben enrutar las solicitudes al mismo clúster. Puedes utilizar los clústeres adicionales de la instancia al mismo tiempo para otros fines.

Cloud Bigtable también proporciona coherencia sólida cuando se habilita la replicación, lo que garantiza que todas tus aplicaciones vean tus datos en el mismo estado. Para obtener una coherencia sólida, puedes utilizar la configuración del perfil de aplicación de enrutamiento de un solo clúster para la coherencia de lectura y escritura descrita anteriormente, pero no debes usar los clústeres adicionales de la instancia, a menos que necesites realizar una conmutación por error a un clúster diferente.

Perfiles de aplicación

Si una instancia usa la replicación, debes usar perfiles de aplicación para controlar cuáles clústeres manejarán las solicitudes entrantes de tus aplicaciones. Los perfiles de aplicación también determinan si puedes realizar transacciones en una sola fila, como las operaciones de lectura-modificación-escritura (incluidos los incrementos y anexos) y las operaciones verificar y mutar (también conocidas como escrituras o mutaciones condicionales).

Si deseas obtener más detalles, consulta Perfiles de aplicación. Si quieres obtener ejemplos de la configuración que puedes usar para implementar casos prácticos comunes, consulta Ejemplos de configuración de replicación.

Conmutaciones por error

Si un clúster de Cloud Bigtable deja de responder, la replicación hace posible que el tráfico de contenido nuevo pase a otro clúster de la misma instancia. Las conmutaciones por error pueden ser manuales o automáticas, según el perfil de aplicación que use una aplicación y su configuración.

Si deseas obtener detalles, consulta Conmutaciones por error.

Cómo quitar rangos de filas cuando se habilita la replicación

La API de Administrador de Cloud Bigtable te permite quitar un rango continuo de filas de una tabla según sus claves de fila. En instancias que no usan la replicación, Cloud Bigtable puede quitar un rango de filas con rapidez y eficiencia. Sin embargo, esta tarea se vuelve considerablemente más lenta cuando la replicación está habilitada.

¿Qué sigue?