Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Device Sync

Migrate Device Sync Modes

Atlas App Services Apps can have one of two Device Sync modes: Partition-Based Sync and Flexible Sync. Partition-Based Sync is an older mode and you should consider migrating to Flexible Sync.

Migrating an App Services App that uses Partition-Based Sync to Flexible Sync is an automatic process. Other than upgrading the SDK version, migrating Sync modes doesn't require any changes to your client app code.

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 de Atlas vinculado:

  • Utilice MongoDB 5.0 o posterior para compatibilidad con sincronización flexible

  • Enable storage auto-scaling

  • Sea un nivel de clúster M10+

  • Have time-based oplog setting enabled

Aplicaciones cliente:

  • Versión mínima del SDK de dispositivos 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

  • Have a Client Reset Handler configured.

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.

  • Migrations can be canceled during the migration or reverted within a certain timeframe after the migration is finished.

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

  • Client apps that were connected to the Partition-Based Sync backend will experience a client reset after the backend is migrated to Flexible Sync. You should use a client reset handler with recovery enabled so you don't lose any pending changes from before the client reset.

  • Crear nuevas tablas en un backend de Flexible Sync migrado usando modo de desarrollo desde un cliente de Partition-Based Sync puede ocasionar comportamientos inesperados.

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. Building Flexible Sync metadata

    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. Completed migration

    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, por lo general, tiene efectos similares a terminar y volver a habilitar Device Sync. Hay algunos efectos adicionales de la migración:

  • 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. Selecciona la pestaña Configuration.

  3. Haga clic en Start migration.

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

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

Nota

Interrupción temporal de la sincronización

Clients will not be able to sync their local writes until the migration has completed.

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.

Your App's permissions and rules will be automatically migrated if the Partition-Based Sync rules have direct App Services Rules equivalents. This will override previously-defined App Services Rules.

In step 4 above, you will see if your permissions and rules can be automatically migrated. On the Review Migration Process step in the App Services UI, look for 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.

You should also check out the Device Sync Permissions Guide for more information about how to work with permissions.

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. Selecciona la pestaña Configuration.

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

    Cancelar una migración
    haga clic para ampliar

    This will cancel your migration. You will need to migrate again if you want to enable Flexible Sync in the future.

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.

Después de que se confirme una migración, se borran los metadatos antiguos de Partition-Based Sync y no se puede 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. Selecciona 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 puedes recuperar tus metadatos de Partition-Based Sync.

You can revert a migration after it has completed and before it has been committed.

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. Selecciona la pestaña Configuration.

  3. En la sección Manage Sync, haz clic en el menú desplegable Manage migration y luego selecciona 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 otras características del campo inyectado que debes conocer:

  • The injected field follows this structure: <yourPartitionKey> == <yourPartitionValue>. The field key is derived from your old Partition-Based Sync backend configuration. The value is derived from your current Partition-Based Sync client configuration.

  • The injected field does not sync back to the client that created the object. This means the originating client won't be able to read the injected partitionKey field.

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.

You can keep the automatically-generated subscriptions if you don't want to remove and recreate them. But because these subscriptions aren't created in your client code, they may make it harder for you to maintain and extend client code.

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