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 de Cloud Bigtable con más de un clúster o agrega un clúster a una instancia existente.

Cloud Bigtable admite hasta 4 clústeres replicados que se ubican en las zonas de Google Cloud donde 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. Si ubicas clústeres en diferentes zonas o regiones, podrás acceder a los datos incluso si una zona o una región de Google Cloud 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 la instancia para que las solicitudes de los distintos tipos de aplicaciones se enruten a clústeres diferentes.

Antes de agregar clústeres a una instancia, debes tener en cuenta las restricciones que se aplican cuando cambias las políticas de recolección de elementos no utilizados por tablas replicadas.

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 lote

Cuando usas un solo clúster para ejecutar un trabajo de estadísticas por lotes que realiza varias lecturas grandes, además de 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 1 solo clúster, la durabilidad y la disponibilidad de tus datos estará limitada según la zona en la que se encuentre el clúster. 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, aún puedes usar la replicación mediante el control de las solicitudes con un clúster y el uso del 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, no 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. A fin de obtener coherencia en la lectura de tus escrituras para un grupo de aplicaciones, cada aplicación del grupo debe usar un perfil de app configurado en el enrutamiento en un solo clúster, y todos los perfiles de app deben enrutar las solicitudes al mismo clúster. Puedes usar los clústeres adicionales de la instancia al mismo tiempo para otros fines.

Para algunos casos prácticos de replicación, Cloud Bigtable también puede proporcionar coherencia sólida, lo que garantiza que todas las aplicaciones vean los datos en el mismo estado. Para obtener una coherencia sólida, puedes usar la configuración del perfil de app de enrutamiento de un solo clúster para la coherencia en la lectura de tus escrituras antes descrita, 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. Revisa los ejemplos de configuración de replicación para ver si esto es posible en tu caso práctico.

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 la configuración de la 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.

Quita 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.

Próximos pasos