Docs Menu
Docs Home
/ /
Sincronización de dispositivos

Migrar modos de sincronización de dispositivos

Las aplicaciones de Atlas App Services pueden tener uno de dos modos de sincronización de dispositivos: sincronización basada en particiones y sincronización flexible. La sincronización basada en particiones es un modo más antiguo y debería considerar migrar a la sincronización flexible.

La migración de una aplicación de App Services que usa sincronización basada en particiones a sincronización flexible es un proceso automático. Aparte de actualizar la versión del SDK, la migración de los modos de sincronización no requiere cambios en el código de la aplicación cliente.

La migración da como resultado que los clientes de sincronización basada en particiones se comuniquen con un backend de sincronización flexible. Recomendamos eventualmente migrar el código de su aplicación cliente para utilizar también la sincronización flexible en lugar de la sincronización basada en particiones.

Servicios de aplicaciones Aplicación:

  • Actualmente utiliza Partition-Based Sync

Clúster Atlas vinculado:

Aplicaciones cliente:

  • Versión mínima del SDK del dispositivo Atlas:

    • Swift SDK v10.40.0 o posterior

    • SDK de Kotlin v1.9.0 o posterior

    • Node.js SDK v11.10.0 o posterior

    • React Native SDK v11.10.0 o posterior

    • .NET SDK v11.1.0 o posterior

    • Java SDK v10.16.0 o posterior

  • Tenga configurado un controlador de restablecimiento de cliente.

Migrar el modo de sincronización de tu aplicación implica cambios que afectan tanto a las aplicaciones cliente como al backend de la aplicación. Debes tener en cuenta los efectos y planificar con antelación.

  • Las aplicaciones cliente que no cumplan con el requisito de versión mínima del SDK no podrán sincronizarse después de la migración.

  • La duración de una migración es directamente proporcional a la cantidad de datos que necesitan ser migrados. Cuantos más datos existan, más tiempo tomará la migración.

  • Las migraciones se pueden cancelar durante la migración o revertir dentro de un período de tiempo determinado una vez finalizada la migración.

  • Las notificaciones de progreso no funcionarán después de la migración porque Flexible Sync no las admite.

  • Las aplicaciones cliente conectadas al backend de sincronización basada en particiones experimentarán un restablecimiento del cliente después de migrar el backend a la sincronización flexible. Debe usar un controlador de restablecimiento de cliente con la recuperación habilitada para no perder los cambios pendientes anteriores al restablecimiento del cliente.

  • La creación de nuevas tablas en un backend de sincronización flexible migrado mediante el modo de desarrollo desde un cliente de sincronización basada en particiones puede generar un comportamiento inesperado.

Puedes ver la etapa de tu migración en la interfaz de usuario de App Services. Una migración en modo de sincronización consta de tres etapas:

  1. Sincronizando metadatos de Partition-Based Sync

    En esta etapa, las aplicaciones cliente pueden conectarse al backend de tu aplicación, pero las escrituras locales no se sincronizarán. Estas escrituras se perderán si no tienes un controlador de restablecimiento de cliente para recuperar los cambios no sincronizados.

    Los clientes recibirán actualizaciones de las colecciones sincronizadas, pero no podrán enviar cargas ni recibir acuses de recibo de carga.

  2. Creación de metadatos de sincronización flexible

    Los clientes no pueden conectarse en esta etapa. La duración de esta etapa es directamente proporcional a la cantidad de datos en las colecciones sincronizadas.

  3. Migración completada

    Manage Sync Migration aparece en la página Device Sync si la migración no ha sido confirmada ni revertida.

Una vez finalizada la migración, consulte la sección Después de la migración para obtener más información sobre cómo los clientes de sincronización basada en particiones interactúan con el backend de sincronización flexible.

Tras iniciar la migración de la sincronización basada en particiones a la sincronización flexible, el proceso es prácticamente automático. Sin embargo, puede controlar partes importantes de la migración.

Durante una migración, puedes cancelarla. Después, puedes revertirla o confirmarla manualmente.

Antes de comenzar una migración, asegúrese de conocer las etapas y los efectos de la migración.

La migración generalmente tiene efectos similares a la finalización y reactivación de la sincronización de dispositivos. Existen algunos efectos adicionales:

  • En la interfaz de usuario de App Services, todas las páginas de configuración serán de solo lectura. Por ejemplo, las pantallas Reglas, Esquemas, Funciones y Desencadenadores.

  • Su aplicación experimentará un período de sincronización de solo lectura y luego un período de inactividad.

  • La nueva configuración de sincronización flexible establecerá el tiempo máximo sin conexión del cliente en 30 días.

  • El almacenamiento en su clúster Atlas utilizado por los metadatos de sincronización de dispositivos se duplica temporalmente. Los metadatos de sincronización basada en particiones y los de sincronización flexible deben coexistir temporalmente. Según el tamaño de los datos sincronizados, esto podría afectar la facturación cada vez que migre. Los metadatos duplicados se eliminan después de revertir o confirmar la migración.

Para migrar de la sincronización basada en particiones a la sincronización flexible:

  1. Navegue a la pantalla Device Sync:

    Desde la Interfaz de usuario Realm, haz clic en Device Sync en el menú de navegación de la izquierda. La pestaña Dashboard se muestra por defecto.

  2. Seleccione la pestaña Configuration.

  3. Haga clic en Start migration.

    Iniciar una migración
    haga clic para ampliar
  4. Revisa la información sobre el proceso de migración y haz clic en Next: Migration Requirements.

  5. Asegúrese de cumplir con los requisitos de migración y luego haga clic en Start Migration.

Nota

Interrupción temporal de la sincronización

Los clientes no podrán sincronizar sus escrituras locales hasta que se complete la migración.

Una vez completada la migración, las aplicaciones cliente de Sincronización basada en particiones se restablecerán. Después, podrán comunicarse con el backend de Sincronización flexible de tu aplicación. Puedes deshabilitar y volver a habilitar la Sincronización flexible y las aplicaciones cliente seguirán comunicándose con tu backend.

Si vuelve a habilitar la sincronización basada en particiones, perderá el estado "migrado". Esto significa que deberá realizar otra migración si desea usar la sincronización flexible en el backend con aplicaciones cliente de sincronización basada en particiones.

Los permisos y las reglas de tu aplicación se migrarán automáticamente si las reglas de sincronización basada en particiones tienen equivalentes directos en las reglas de App Services. Esto anulará las reglas de App Services definidas previamente.

En el paso 4 anterior, verá si sus permisos y reglas se pueden migrar automáticamente. En el paso Review Migration Process de la interfaz de usuario de App Services, busque Rules & Permissions.

Algunas estrategias de reglas de sincronización basadas en particiones no se pueden traducir directamente a reglas de App Services. Es posible que deba migrar manualmente los permisos que incluyen:

Consulte la lista de expansiones compatibles con Flexible Sync para ver todas las expansiones admitidas.

También debe consultar la Guía de permisos de sincronización de dispositivos para obtener más información sobre cómo trabajar con permisos.

Puede cancelar una migración en cualquier momento mientras esté en curso. Esto devolverá a tu aplicación la Partition-Based Sync, con todas las configuraciones tal como estaban antes de que se iniciara la migración.

Si cancela una migración, deberá comenzar desde el principio con los futuros intentos de migración.

Para cancelar una migración:

  1. Navega a la pantalla Device Sync:

    Desde la Interfaz de usuario Realm, haz clic en Device Sync en el menú de navegación de la izquierda. La pestaña Dashboard se muestra por defecto.

  2. Seleccione la pestaña Configuration.

  3. En el banner de notificación, haga clic en Cancel Migration.

    Cancelar una migración
    haga clic para ampliar

    Esto cancelará la migración. Deberás migrar de nuevo si deseas habilitar la Sincronización Flexible en el futuro.

Una vez completada la migración, esta se encuentra en estado de evaluación. Puedes confirmarla manualmente para que sea permanente o revertirla para que tu aplicación vuelva a la sincronización basada en particiones.

Si no confirmas ni reviertes la migración, se confirmará automáticamente según tu ventana mínima de oplog. Por ejemplo, si tu oplog window mínima es de 48 horas, tendrás 48 horas para revertir tu migración.

Una vez confirmada una migración, los metadatos de sincronización basada en particiones anteriores se eliminan y no es posible revertir la migración.

Para confirmar manualmente una migración:

  1. Navega a la pantalla Device Sync:

    Desde la Interfaz de usuario Realm, haz clic en Device Sync en el menú de navegación de la izquierda. La pestaña Dashboard se muestra por defecto.

  2. Seleccione la pestaña Configuration.

  3. En la parte superior de la página, haga clic en el menú desplegable Manage migration y luego seleccione Delete Partition-Based Sync metadata.

    Confirma una migración
  4. Confirme que desea eliminar sus metadatos y comprometerse con la migración a Flexible Sync.

    Importante

    Una vez eliminados, no podrás recuperar los metadatos de sincronización basada en particiones.

Puede revertir una migración una vez completada y antes de que se haya confirmado.

Las migraciones completadas se confirman automáticamente según su ventana mínima de registro de operaciones. Puede aumentar o disminuir el tiempo disponible para revertir una migración ajustando la ventana mínima de registro de operaciones.

No es posible revertir una migración que ya se ha confirmado.

De manera similar a cancelar una migración, si revierte una migración, deberá comenzar desde el principio con los futuros intentos de migración.

Para revertir una migración:

  1. Navega a la pantalla Device Sync:

    Desde la Interfaz de usuario Realm, haz clic en Device Sync en el menú de navegación de la izquierda. La pestaña Dashboard se muestra por defecto.

  2. Seleccione la pestaña Configuration.

  3. Desde la sección Manage Sync, haga clic en el menú desplegable Manage migration y luego seleccione Revert back to Partition-Based Sync.

    Revertir una migración

    Esto revertirá la migración. Debes migrar de nuevo si deseas habilitar la sincronización flexible en el futuro.

El backend migrado utiliza un campo de clave de partición en los modelos de objetos para asignar los objetos del cliente de sincronización basada en particiones a sus equivalentes de sincronización flexible en el backend. Si los modelos de objetos no tienen un campo de clave de partición, el backend inyecta uno automáticamente en cada objeto que crea el cliente de sincronización basada en particiones.

Estas son algunas otras características del campo inyectado que debes conocer:

  • El campo inyectado sigue esta<yourPartitionKey> == <yourPartitionValue> estructura:. La clave del campo se deriva de la configuración anterior del backend de sincronización basada en particiones. El valor se deriva de la configuración actual del cliente de sincronización basada en particiones.

  • El campo inyectado no se sincroniza con el cliente que creó el objeto. Esto significa que el cliente de origen no podrá leer el campo partitionKey inyectado.

El cliente de sincronización basada en particiones crea automáticamente suscripciones de sincronización para cada tabla donde esté partitionKey == partitionValue activa. Esto continuará hasta que migre su aplicación cliente a la sincronización flexible.

Tras migrar la aplicación cliente a Flexible Sync, el backend dejará de inyectar el campo de clave de partición. Si la aplicación cliente utiliza este campo para administrar las suscripciones de sincronización, debería añadirlo a sus modelos de objetos.

Si no lo hace, los objetos creados en nuevas versiones de su aplicación no se sincronizarán con los clientes que usen versiones anteriores del código de la aplicación cliente.

Una vez migrado el backend de su aplicación a Flexible Sync, le recomendamos migrar su aplicación cliente a Flexible Sync. Al migrar su aplicación cliente a Flexible Sync, el cliente dejará de crear automáticamente suscripciones de sincronización para cada modelo de objetos en el modelo de datos de su aplicación.

También recomendamos eliminar todas las suscripciones de sincronización y luego crear nuevas suscripciones para sus datos. Esta es la forma más clara de controlar qué datos se sincronizan después de una migración.

Si desea eliminar suscripciones individuales, las suscripciones generadas automáticamente utilizan un formato de nomenclatura específico: flx_migrated_ + el nombre de su modelo de objetos. Por ejemplo, el nombre de suscripción de un modelo de objetos Person sería flx_migrated_Person.

Puedes conservar las suscripciones generadas automáticamente si no quieres eliminarlas y volver a crearlas. Sin embargo, como estas suscripciones no se crean en tu código de cliente, pueden dificultar su mantenimiento y ampliación.

Para obtener más información sobre la actualización del código del cliente tras migrar de Partition-Based Sync a Flexible Sync, consulta:

Volver

Protocolo de sincronización de dispositivos Atlas

En esta página