Menu Docs
Página inicial do Docs
/ /
Serviços Atlas App
/

Migrar modos de sincronização de dispositivos

Nesta página

  • Requisitos
  • O que saber antes de migrar
  • Estágios de migração
  • Migrar a sincronização baseada em partição para a Flexible Sync
  • Iniciar migração
  • Migrar permissões e regras
  • Cancelar migração
  • Confirmar migração
  • Reverter migração
  • Após a migração de backend
  • Migrar o aplicativo do cliente para o Flexible Sync

Os aplicativos do Atlas App Services podem ter um de dois modos de sincronização de dispositivo: sincronização baseada em partição e sincronização flexível. A sincronização baseada em partição é um modo mais antigo e você deve considerar migrar para a Flexible Sync.

A migração de um aplicativo do App Services que usa a sincronização baseada em partição para o Flexible Sync é um processo automático. Além de atualizar a versão do SDK, a migração dos modos de sincronização não exige nenhuma alteração no código do aplicativo cliente.

A migração resulta em clientes de sincronização baseada em partição se comunicando com um backend de Flexible Sync . Recomendamos eventualmente migrar o código do seu aplicativo cliente para usar também o Flexible Sync em vez do sincronização baseada em partição.

App Services App:

  • Atualmente, usa a sincronização baseada em partição

Atlas Cluster vinculado:

  • Use o MongoDB 5.0 ou posterior para compatibilidade com o Flexible Sync

  • Habilitar o auto-scaling de armazenamento

  • Ser uma camada do cluster M10+

  • Habilitar a configuração de oplog baseada em tempo

Aplicativos do cliente:

  • Versão mínima do Atlas Device SDK :

    • Swift SDK v10.40.0 ou posterior

    • Kotlin SDK v1.9.0 ou posterior

    • Node.js SDK v11.10.0 ou posterior

    • React Native SDK v11.10.0 ou posterior

    • .NET SDK v11.1.0 ou posterior

    • Java SDK v10.16.0 ou posterior

  • Tenha um reinício do cliente Handler configurado.

A migração do modo de sincronização do seu aplicativo envolve alterações que afetam os aplicativos clientes e o backend do seu aplicativo. Você deve estar ciente dos efeitos e planejar com antecedência.

  • Os aplicativos clientes que não atendem ao requisito mínimo de versão do SDK não poderão ser sincronizados após a migração.

  • O tempo que leva uma migração é diretamente proporcional à quantidade de dados que precisa ser migrada. Quanto mais dados, mais tempo levará para migrar.

  • As migrações podem ser canceladas durante a migração ou revertidas dentro de um determinado período após a conclusão da migração.

  • As notificações de progresso não funcionarão após a migração porque o Flexible Sync não oferece suporte a elas.

  • Os aplicativos clientes que foram conectados ao backend da sincronização baseada em partição passarão por um client reset após o backend ser migrado para o Flexible Sync. Você deve usar um manipulador de reinício do cliente com a recuperação ativada para não perder as alterações pendentes anteriores ao reinício do cliente.

  • Criar novas tabelas em um backend de Flexible Sync migrado usando o modo de desenvolvimento de um cliente de Partition-Based Sync pode levar a um comportamento inesperado.

Você pode ver o estágio da sua migração na interface do usuário do App Services. Existem três estágios para uma migração do modo de sincronização:

  1. Sincronizando metadados de sincronização baseada em partição

    Nesse estágio, os aplicativos do cliente podem se conectar ao backend do seu aplicativo, mas as gravações locais não serão sincronizadas. Essas gravações serão perdidas se você não tiver um manipulador de reinício do cliente para recuperar as alterações não sincronizadas.

    Os clientes receberão atualizações para collection sincronizadas, mas não poderão enviar uploads ou receber confirmações de upload.

  2. Criando metadados de Flexible Sync

    Os clientes não podem se conectar nesta etapa. A duração desse estágio é diretamente proporcional à quantidade de dados em collection sincronizadas.

  3. Migração concluída

    Manage Sync Migration aparece na página Realm Mobile Sync se a migração não tiver sido confirmada ou revertida.

Após a conclusão da migração, confira a seção Após a migração para obter mais informações sobre como os clientes de Partition-Based Sync interagem com o backend do Flexible Sync.

Depois de iniciar a migração da sincronização baseada em partição para a Flexible Sync, o processo é principalmente automático. No entanto, você pode controlar partes importantes da migração.

Durante uma migração, você pode cancelá-la. Após uma migração, você pode revertê-la ou confirmá-la manualmente.

Antes de iniciar uma migração, certifique-se de que está ciente das etapas e efeitos da migração.

A migração geralmente tem efeitos semelhantes ao encerramento e reativação do Realm Mobile Sync. Existem alguns efeitos adicionais da migração:

  • Na interface do usuário do App Services, todas as páginas de configuração serão somente leitura. Por exemplo, telas de Regras, Esquemas, Funções e Triggers.

  • Seu aplicativo passará por um período de sincronização somente leitura e, em seguida, por um período de inatividade.

  • A nova configuração do Flexible Sync definirá o tempo máximo offline do cliente para 30 dias.

  • O armazenamento no seu cluster do Atlas usado pelos metadados do Realm Mobile Sync está temporariamente duplicado. Os metadados de sincronização baseada em partição e os metadados de Flexible Sync devem coexistir temporariamente. Dependendo do tamanho dos seus dados sincronizados, isso pode afetar o faturamento sempre que você migrar. Os metadados duplicados são removidos após a migração ser revertida ou confirmada.

Para migrar da sincronização baseada em partição para a Flexible Sync:

  1. Navegue até a tela Device Sync :

    Na interface do usuário do App Services, clique em Device Sync no menu de navegação esquerdo. A aba Dashboard é exibida por padrão.

  2. Selecione a guia Configuration.

  3. Clique em Start migration.

    Iniciar uma migração
    clique para ampliar
  4. Revise as informações do processo de migração e clique em Next: Migration Requirements.

  5. Certifique-se de atender aos requisitos de migração e clique em Start Migration.

Observação

Interrupção de sincronização temporária

Os clientes não poderão sincronizar suas gravações locais até que a migração seja concluída.

Depois que a migração for concluída, os aplicativos clientes de Partition-Based Sync Go por um reinício do cliente. Em seguida, eles podem se comunicar com o backend do Flexible Sync do seu aplicativo. Você pode desativar e reativar a Flexible Sync, e os aplicativos clientes ainda se comunicarão com seu backend.

Se você reativar a sincronização baseada em partição , perderá o status de "migrado". Isso significa que você precisará fazer outra migração se quiser usar o Flexible Sync no backend com aplicativos cliente de sincronização baseada em partição .

As permissões e regras da sua aplicação serão migradas automaticamente se as regras de sincronização baseada em partição tiverem equivalentes diretos às regras do App Services. Isso substituirá as Regras do App Services definidas anteriormente.

Na etapa 4 acima, você verá se suas permissões e regras podem ser migradas automaticamente. Na etapa Review Migration Process da interface do usuário do App Services, procure por Rules & Permissions.

Algumas estratégias de Sincronização baseada em partição não podem ser convertidas diretamente em regras do App Services. Talvez seja necessário migrar manualmente as permissões que incluem:

Consulte a lista de expansões compatíveis com Sincronização flexível para todas as expansões suportadas.

Você também deve verificar o Guia de permissões do Device Sync para obter mais informações sobre como trabalhar com permissões.

Você pode cancelar uma migração a qualquer momento enquanto ela estiver em andamento. Isso retornará à sua aplicação a sincronização baseada em partição, com todas as configurações como estavam antes do início da migração.

Se você cancelar uma migração, precisará começar desde o início com futuras tentativas de migração.

Para cancelar uma migração:

  1. Navegue até a tela Device Sync :

    Na interface do usuário do App Services, clique em Device Sync no menu de navegação esquerdo. A aba Dashboard é exibida por padrão.

  2. Selecione a guia Configuration.

  3. No banner de notificação, clique em Cancel Migration.

    Cancelar uma migração
    clique para ampliar

    Isso cancelará sua migração. Você precisará migrar novamente se quiser ativar o Flexible Sync no futuro.

Após a conclusão da migração, ela estará em um estado de avaliação. Você pode confirmar manualmente a migração para torná-la permanente ou reverter a migração para retornar seu aplicativo à sincronização baseada em partição.

Se você não confirmar ou reverter a migração, ela será confirmada automaticamente de acordo com sua oplog window mínima. Por exemplo, se a oplog window mínima for 48 horas, você terá 48 horas para reverter a migração.

Após a confirmação de uma migração, os metadados antigos da sincronização baseada em partição são excluídos e não é possível reverter a migração.

Para confirmar manualmente uma migração:

  1. Navegue até a tela Device Sync :

    Na interface do usuário do App Services, clique em Device Sync no menu de navegação esquerdo. A aba Dashboard é exibida por padrão.

  2. Selecione a guia Configuration.

  3. Na parte superior da página, clique no menu suspenso Manage migration e selecione Delete Partition-Based Sync metadata.

    Confirmar uma migração
  4. Confirme que você deseja excluir seus metadados e se comprometer com a migração para o Flexible Sync.

    Importante

    Depois de excluídos, você não poderá recuperar seus metadados de sincronização baseada em partição .

Você pode reverter uma migração após ela ser concluída e antes de ser confirmada.

As migrações concluídas são automaticamente confirmadas de acordo com sua oplog window mínima. Você pode aumentar ou diminuir o tempo disponível para reverter uma migração ajustando a oplog window mínima.

Não é possível reverter uma migração que foi confirmada.

Semelhante ao cancelamento de uma migração, se você reverter uma migração, precisará começar do início com futuras tentativas de migração.

Para reverter uma migração:

  1. Navegue até a tela Device Sync :

    Na interface do usuário do App Services, clique em Device Sync no menu de navegação esquerdo. A aba Dashboard é exibida por padrão.

  2. Selecione a guia Configuration.

  3. Na seção Manage Sync , clique no menu suspenso Manage migration e selecione Revert back to Partition-Based Sync.

    Reverter uma migração

    Isso reverterá sua migração. Você deve migrar novamente se quiser ativar o Flexible Sync no futuro.

O backend migrado usa um campo de chave da partição em seus modelos de objeto para mapear os objetos cliente do sincronização baseada em partição para os equivalentes do Flexible Sync no backend. Se seus modelos de objeto não tiverem um campo de chave da partição} , o backend injetará automaticamente um em cada objeto criado pelo cliente de sincronização baseada em partição} .

Essas são algumas outras características do campo injetado que você deve estar ciente:

  • O campo injetado segue esta estrutura: <yourPartitionKey> == <yourPartitionValue>. A chave do campo é derivada da configuração antiga do backend da sincronização baseada em partição. O valor é derivado da configuração atual do cliente de sincronização baseada em partição.

  • O campo injetado não sincroniza novamente com o cliente que criou o objeto. Isso significa que o cliente de origem não poderá ler o campo partitionKey injetado.

O cliente de sincronização baseada em partição cria automaticamente assinaturas de sincronização para cada tabela onde partitionKey == partitionValue. Isso continuará até que você migre seu aplicativo de cliente para o Flexible Sync.

Após migrar seu aplicativo cliente para o Flexible Sync , o backend deixará de injetar o campo de chave da partição . Se o seu aplicativo cliente depender do campo de chave da partição para gerenciar assinaturas de sincronização, você deverá adicionar o campo de chave da partição aos seus modelos de objeto .

Caso contrário, os objetos criados em novas versões da sua aplicação não serão sincronizados com os clientes que usam versões mais antigas do código da sua aplicação cliente.

Depois que o backend do seu aplicativo for migrado para o Flexible Sync, recomendamos que você migre seu aplicativo cliente para o Flexible Sync. Quando você migrar seu aplicativo cliente para o Flexible Sync, o cliente parará de criar automaticamente assinaturas de sincronização para cada modelo de modelo de objetos de dados do seu aplicativo.

Também recomendamos remover todas as assinaturas de sincronização e, em seguida, criar novas assinaturas para seus dados. Essa é a maneira mais clara de controlar quais dados são sincronizados após uma migração.

Se você quiser remover assinaturas individuais, as assinaturas geradas automaticamente usam um formato de nomenclatura específico: flx_migrated_ + o nome do seu modelo de objeto. Por exemplo, o nome da assinatura de um modelo de objeto Person seria flx_migrated_Person.

Você pode manter as assinaturas geradas automaticamente se não quiser removê-las e recriá-las. Mas, como essas assinaturas não são criadas no código do cliente, elas podem dificultar a manutenção e a extensão do código do cliente.

Para obter mais informações sobre como atualizar o código do cliente após migrar da Sincronização baseada em partição para a Flexible Sync, consulte:

Voltar

Atlas Device Sync Protocol