Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Actualización automática a Firestore

En esta página se describe la ruta de actualización de Cloud Datastore a Firestore en modo Datastore.

Firestore puede operar en modo Datastore, por lo que es retrocompatible con Cloud Datastore. Con Firestore en modo Datastore, puedes acceder a una capa de almacenamiento mejorada de Firestore mientras conservas el comportamiento del sistema de Datastore. Firestore en modo Datastore quita las siguientes limitaciones de Cloud Datastore:

  • Las consultas ya no tienen coherencia eventual, sino coherencia sólida.
  • Las consultas en las transacciones ya no deben ser consultas principales.
  • Las transacciones ya no están limitadas a 25 grupos de entidades.
  • Las operaciones de escritura en un grupo de entidad ya no están limitadas a 1 por segundo.
  • Las transacciones ahora usan bloqueos pesimistas en lugar de simultaneidad optimista.

Para obtener más información sobre el modo Datastore, consulta Firestore en modo Datastore.

A partir de 2021, Google Cloud actualizará gradualmente las bases de datos de Cloud Datastore existentes a Firestore en modo Datastore.

Actualización automática a Firestore en modo Datastore

Si administras una aplicación que usa Cloud Datastore, no necesitarás actualizar tu código de la aplicación. Te notificaremos sobre el programa de la actualización de tu aplicación a Firestore en modo Datastore. La actualización no requiere tiempo de inactividad.

Si tienes preguntas adicionales sobre el proceso de actualización automática, comunícate con uno de nuestros canales de asistencia.

Etapas de actualización

En un nivel alto, seguimos este proceso para actualizar tu base de datos de Cloud Datastore a Firestore en modo Datastore. Este proceso no requiere tiempo de inactividad de la aplicación:

  1. Agrega una nueva réplica de datos de Firestore en modo Datastore a tu base de datos existente de Cloud Datastore. Duplica de forma asíncrona las operaciones de escritura de entidades en Firestore en modo Datastore.

  2. Copia los datos existentes y las entradas de índice de Cloud Datastore a Firestore en modo Datastore. Después de copiarlos, verifica los datos.

  3. Redirecciona las lecturas de entidades directamente a Firestore en modo Datastore. Primero redirecciona las lecturas de coherencia eventual y, luego, redirecciona las lecturas de coherencia sólida.

  4. Redirecciona las operaciones de escritura y las lecturas transaccionales de la entidad directamente en Firestore en modo Datastore

Este proceso usa las siguientes etapas.

1. Copia y verifica

Esta etapa presenta una réplica de Firestore en modo Datastore y realiza los siguientes pasos:

  1. Diario

    Las operaciones de escritura de entidades en Cloud Datastore también comienzan a fluir a través de un canal lateral a la réplica de Firestore en modo Datastore. Esto sucede como parte del sistema de replicación existente de Cloud Datastore. Estas operaciones de escritura no afectan la latencia de escritura. La réplica de Firestore en modo Datastore almacena en búfer estas operaciones de escritura para aplicarlas después del paso de copia.

  2. Copiar

    En la réplica de Firestore en modo Datastore, crea una copia sin conexión de los datos existentes y las entradas de índice. El paso de copia no afecta a las operaciones de Cloud Datastore. Este paso puede durar varios días.

  3. Desvía el diario

    Aplica las escrituras del paso del diario sobre los datos desde la copia sin conexión.

  4. Verifica datos

    Vuelve a verificar los datos en Firestore en modo Datastore mediante la comparación con los datos de Cloud Datastore.

2. Redirecciona lecturas de coherencia eventual

Entrega lecturas de coherencia eventual (consultas sin filtro principal) desde Firestore en modo Datastore. La semántica de Cloud Datastore para las lecturas aún se aplica en este punto:

  • Las consultas principales tienen coherencia sólida.
  • Las consultas no principales son de coherencia eventual.
  • Las búsquedas son de coherencia sólida (excepto las configuradas de manera explícita para coherencia eventual).

Firestore en modo Datastore continúa funcionando como una réplica de tus datos de Cloud Datastore.

3. Redirecciona las lecturas de coherencia sólida

Entrega lecturas con coherencia sólida (no transaccionales) de Firestore en modo Datastore. Ten en cuenta que la semántica de Cloud Datastore para las lecturas aún se aplica. Aunque las lecturas ahora provienen de Firestore directamente, Firestore todavía usa Cloud Datastore a fin de garantizar que esté actualizado para las lecturas con coherencia sólida.

4. Redirecciona escrituras

Redirecciona las escrituras de entidades y las lecturas transaccionales a Firestore en modo Datastore. Las modificaciones simultáneas en la misma entidad continúan generando anulaciones de transacciones. Las modificaciones simultáneas a diferentes entidades dentro del mismo grupo de entidades ya no dan como resultado la anulación de las transacciones.

Al comienzo de esta etapa, Firestore en modo Datastore aún depende de Cloud Datastore para garantizar que esté actualizado antes de cada escritura. Después de un pase final que garantiza que se apliquen todas las escrituras anteriores, Firestore en modo Datastore deja de consultar Cloud Datastore.

5. Migración completa

Ahora se aplican las semánticas de Firestore en modo Datastore para las lecturas: todas las consultas tienen coherencia sólida.

Los precios serán los mismos, pero tu facturación ahora incluye los SKU de Firestore. La página Cuotas de App Engine comienza a mostrar el uso de Firestore en lugar del uso de Cloud Datastore.

Notificaciones de registro y progreso

El proceso de actualización usa Cloud Logging para publicar actualizaciones de progreso. Para ver los registros, usa el Explorador de registros, la API de Cloud Logging o el SDK de Cloud.

Las actualizaciones se publican en dos registros debajo del nombre del servicio de registro datastore.googleapis.com:

Nombre del registro Recurso supervisado Carga útil
estado_migración base_de_datos_Datastore type.googleapis.com/google.datastore.admin.v1.MigrationStateEvent
migration_progress base_de_datos_Datastore type.googleapis.com/google.datastore.admin.v1.MigrationProgressEvent

El registro migration_state se actualiza cuando cambia el estado general de la actualización (RUNNING y COMPLETE).

El registro migration_progress se actualiza cada vez que la actualización se mueve a una etapa nueva (START, COPY_AND_VERIFY, REDIRECT_EVENTUALLY_CONSISTENT_READS, REDIRECT_STRONGLY_CONSISTENT_READS y REDIRECT_WRITES).

Para recibir notificaciones a medida que avance la actualización, puede crear métricas basadas en registros a partir de los dos registros y crear alertas en función de esas métricas.

Prueba una aplicación existente

En el caso de una app existente que usa Cloud Datastore, puedes probar su comportamiento con Firestore en modo Datastore si haces lo siguiente:

  1. Crea un proyecto nuevo. En este proyecto, crea una base de datos de Firestore en modo Datastore.
  2. Con el servicio administrado de exportación, exporta algunos de los datos de tu aplicación a Cloud Storage.
  3. Con el servicio administrado de importación, importa los datos de tu aplicación a tu proyecto nuevo.
  4. Copia la lógica de la app que deseas probar al proyecto nuevo o simula el comportamiento de la app en el proyecto nuevo.

Métricas de Cloud Monitoring

Las métricas de Cloud Monitoring disponibles para tu base de datos de Datastore permanecen iguales durante el proceso de actualización, consulta las métricas de Datastore disponibles.