Couchbase Mobile

Novidades no Couchbase Mobile v1.3: Replicação entre instâncias no Sync Gateway

DNA undergoing replication.

DNA em processo de replicação.

Gráfico cortesia de Madprime com permissão sob licença CC BY-SA 2.0

Gateway de sincronização

Gateway de sincronização forma a "cola" entre Couchbase Lite e Servidor Couchbase no Couchbase Mobile pilha. É uma gateway seguro da Web que permite a sincronização e o acesso a dados pela Web.

Essa é uma maneira de ver as coisas, que não faz justiça ao Sync Gateway. Você pode usá-lo de forma inteligente para vincular clientes sem nenhum back-end, por exemplo. Em um post anteriorNa seção "Suporte ao OpenID Connect", falei sobre o suporte ao OpenID Connect. O Sync Gateway atua lá para facilitar todo o fluxo de autorização. Há muito mais, mas nesta postagem quero me concentrar em um novo recurso adicionado na versão 1.3.

Um olhar mais profundo sobre a sincronização

A sincronização (abreviação de synchronizing) refere-se à manutenção da consistência dos dados em duas ou mais instâncias de um banco de dados. A sincronização pode ser um problema difícil. Sempre que dois escritores tentam fazer alterações conflitantes, a arquitetura tem de lidar com isso.

Alguns bancos de dados simplesmente ignoram o problema, forçando o uso de um único gravador. Outros dependem da detecção de conflitos em tempo real e da rejeição dos mesmos. Essas abordagens não funcionam nos casos em que cópias diferentes do banco de dados nem sempre podem se comunicar para coordenar.

Uma boa arquitetura de sincronização é um componente essencial de uma solução completa que aborda usos em que um dispositivo pode estar em uma conexão de rede lenta ou estar totalmente desconectado parte do tempo. O Sync Gateway implementa uma parte essencial dessa arquitetura no Couchbase.

Nós nos referimos à pilha completa como Couchbase Mobile. Os usos móveis são um caso óbvio em que o desempenho off-line pode ser importante. Na verdade, porém, você pode usar o Couchbase Mobile, incluindo o Sync Gateway, em muitos outros cenários. O Couchbase Lite e o Sync Gateway são executados em uma ampla variedade de plataformas e, normalmente, são fáceis de portar para novas plataformas. Isso torna o Couchbase Mobile útil para qualquer coisa, desde desktop (ou talvez eu devesse dizer laptop) até IoT.

Aqui estão alguns dos principais recursos que você deve conhecer sobre as replicações do Sync Gateway em geral:

  • Configuração JSON para especificar replicações
  • Oferece suporte a várias réplicas executadas simultaneamente
  • Pode executar replicações OneShot e contínuas
  • Não armazena nada de forma persistente
  • Sem estado - pode ser interrompido/reiniciado a qualquer momento sem efeitos colaterais negativos
  • Filtrar replicações usando canais

Replicação entre instâncias

A versão 1.3 adiciona um novo recurso ao Sync Gateway, a capacidade de replicar (sincronizar) entre instâncias do Sync Gateway. Cada replicação é configurada como um fluxo unidirecional entre dois pontos de extremidade. Isso as torna bastante flexíveis.

Por exemplo, uma replicação simples pode especificar dois bancos de dados na mesma instância do Sync Gateway. Isso pode não parecer muito interessante, mas como cada banco de dados pode ter sua própria função de sincronização, você pode usar um banco de dados como alimentador de outro, permitindo que a lógica comercial complexa gerencie o que é transmitido.

running-replications

Este diagrama mostra um caso de uso mais típico. Aqui, temos dois clusters do Couchbase Server e dois clusters do Sync Gateway. Os clusters do Sync Gateway executam uma replicação bidirecional (na verdade, duas replicações unidirecionais). Isso poderia formar a base de um sistema distribuído globalmente. Os procedimentos de roteamento de rede padrão garantiriam que os clientes se conectassem ao Sync Gateway mais próximo, melhorando o desempenho da rede. Para obter mais detalhes sobre a replicação no Sync Gateway, dê uma olhada na documentação aqui.

Revisões e conflitos de documentos

É importante entender como o Couchbase Mobile lida com a resolução de conflitos. O CBM usa o que é conhecido como controle de simultaneidade de várias versões. Você pode pensar no CBM como o armazenamento não apenas de uma versão de um documento, mas de uma árvore de revisões. Duas gravações desconectadas que atualizam a mesma revisão original de um documento criam duas novas revisões. Ambas existem na árvore. O Couchbase oferece várias maneiras de resolver o conflito. Consulte a documentação aqui para obter mais detalhes.

Mais recursos

Adam Wiggins, cofundador da Heroku, escreveu um excelente artigo sobre por que A sincronização oferece uma experiência de usuário melhor.

Em breve, publicarei um artigo de acompanhamento ilustrando um exemplo simples de replicação entre instâncias. Você pode encontrar o código em github. (Observe que este é um exemplo intencionalmente simples. Não se destina a ser um código de qualidade de produção).

Pós-escrito

Confira mais recursos em nosso portal do desenvolvedor e nos siga no Twitter @CouchbaseDev.

Você pode postar perguntas em nosso fóruns. E participamos ativamente de Estouro de pilha.

Você pode me seguir pessoalmente em @HodGreeley

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Author

Posted by Hod Greeley

Hod Greeley é um defensor dos desenvolvedores da Couchbase e mora no Vale do Silício. Ele tem mais de duas décadas de experiência como engenheiro de software e gerente de engenharia. Trabalhou em diversas áreas de software, incluindo física e química computacional, segurança de computadores e redes, finanças e dispositivos móveis. Antes de ingressar na Couchbase em 2016, Hod liderou as relações com desenvolvedores para dispositivos móveis na Samsung. Hod é Ph.D. em física química pela Universidade de Columbia.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.