{"id":9643,"date":"2021-08-18T00:00:29","date_gmt":"2021-08-18T07:00:29","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=9643"},"modified":"2025-06-13T20:46:00","modified_gmt":"2025-06-14T03:46:00","slug":"xdcr-architecture-replicating-with-collections","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/xdcr-architecture-replicating-with-collections\/","title":{"rendered":"Apresentando o suporte XDCR para escopos e cole\u00e7\u00f5es no Couchbase 7.0"},"content":{"rendered":"<p><strong><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/xdcr\/\">Replica\u00e7\u00e3o entre centros de dados (XDCR)<\/a> \u00e9 um banco de dados essencial.<\/strong><\/p>\n<p>O XDCR garante a alta disponibilidade (HA), a recupera\u00e7\u00e3o de desastres e a geolocaliza\u00e7\u00e3o do banco de dados. Com o <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-server-7-0-release\/?ref=blog\" target=\"_blank\" rel=\"noopener\">a vers\u00e3o 7.0 do Couchbase Server<\/a>, <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/xdcr\/\">XDCR<\/a> tamb\u00e9m oferece suporte a novos <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/scopes-and-collections-for-modern-multi-tenant-applications-couchbase-7-0\/?ref=blog\" target=\"_blank\" rel=\"noopener\">namespaces individuais chamados Scopes e Collections<\/a> em cada Bucket do banco de dados. O suporte a escopos e cole\u00e7\u00f5es tamb\u00e9m inclui grandes aprimoramentos arquitet\u00f4nicos para a replica\u00e7\u00e3o entre data centers.<\/p>\n<p>Com Scopes e Collections, agora voc\u00ea pode usar o XDCR para replica\u00e7\u00e3o de dados para microsservi\u00e7os espec\u00edficos ou replica\u00e7\u00e3o de dados espec\u00edficos de locat\u00e1rios para aplicativos multilocat\u00e1rios. Este artigo apresenta um novo recurso de gerenciamento de replica\u00e7\u00e3o Collections e descreve um aprimoramento arquitet\u00f4nico do XDCR nos bastidores.<\/p>\n<p>Esses aprimoramentos no XDCR permitem uma dimens\u00e3o totalmente nova de casos de uso de replica\u00e7\u00e3o. Posi\u00e7\u00f5es do XDCR <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/server\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Servidor Couchbase<\/a> 7.0 para oferecer suporte a muitos outros casos de uso de aplicativos de microsservi\u00e7os ou multilocat\u00e1rios, hoje e no futuro.<\/p>\n<p>Antes de entrarmos em detalhes, aqui est\u00e3o algumas leituras importantes se voc\u00ea n\u00e3o estiver familiarizado com o Cross Data Center Replication ou com os recursos relacionados:<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Uma r\u00e1pida atualiza\u00e7\u00e3o sobre <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/understanding-xdcr-part-1\/?ref=blog\" target=\"_blank\" rel=\"noopener\">No\u00e7\u00f5es b\u00e1sicas da arquitetura do XDCR<\/a><\/li>\n<li>Um mergulho profundo em <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/advanced-filtering-with-xdcr-6-5\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Filtragem avan\u00e7ada de XDCR<\/a> que abordarei a seguir<\/li>\n<li>Um artigo informativo sobre <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/exercising-control-on-quality-of-service-using-xdcr\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Prioridade de replica\u00e7\u00e3o do XDCR<\/a> - um recurso do 6.5 que mencionarei brevemente a seguir<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Muito bem, vamos nos aprofundar.<\/p>\n<h2>Mapeamento da replica\u00e7\u00e3o de dados entre escopos e cole\u00e7\u00f5es para XDCR<\/h2>\n<p>Se voc\u00ea tiver apenas um \u00fanico cluster, o gerenciamento de escopos e cole\u00e7\u00f5es \u00e9 relativamente simples. Entretanto, como o XDCR envolve dimensionamento multidimensional, o mapeamento e o gerenciamento desses novos namespaces se tornam mais complexos.<\/p>\n<p>Uma \u00fanica replica\u00e7\u00e3o exclusiva ainda pode existir entre um Bucket de origem e um de destino. Esse requisito n\u00e3o est\u00e1 mudando.<\/p>\n<p>Por\u00e9m, com a introdu\u00e7\u00e3o de escopos e cole\u00e7\u00f5es, h\u00e1 dois tipos de mapeamentos a serem suportados<br \/>\ngerenciar cole\u00e7\u00f5es em uma replica\u00e7\u00e3o de Bucket para Bucket. Esses dois tipos s\u00e3o <strong>mapeamento impl\u00edcito<\/strong> e <strong>mapeamento expl\u00edcito<\/strong>.<\/p>\n<p>Um mapeamento \u00e9 um link entre dois namespaces do mesmo n\u00edvel e existe no contexto de uma replica\u00e7\u00e3o de Bucket para Bucket. Um mapeamento pode ser feito entre Escopos ou entre Cole\u00e7\u00f5es.<\/p>\n<p>Cada replica\u00e7\u00e3o de Bucket para Bucket usa mapeamento impl\u00edcito ou expl\u00edcito para executar a replica\u00e7\u00e3o entre as Cole\u00e7\u00f5es de origem e de destino. As replica\u00e7\u00f5es usam mapeamento impl\u00edcito, a menos que seja explicitamente especificado de outra forma.<\/p>\n<h3>Mapeamento impl\u00edcito entre cole\u00e7\u00f5es<\/h3>\n<p>O mapeamento impl\u00edcito \u00e9 o conceito de que uma liga\u00e7\u00e3o deve ser estabelecida se o mesmo namespace nomeado existir nos Buckets de origem e de destino.<\/p>\n<p>Se tanto o Bucket de origem quanto o de destino contiverem <em>de forma id\u00eantica<\/em> named Scopes and\/or Collections, then they are implicitly mapped. For example, under implicit mapping, if a source Bucket contains a namespace `Scope1.Collection1`, then replication will take place if the target Bucket also contains `Scope1.Collection1`.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<div id=\"attachment_9644\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-9644\" class=\"size-full wp-image-9644\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/Implicit-mapping.png\" alt=\"Implicit mapping for cross data center replication (XDCR) between two Buckets in Couchbase\" width=\"960\" height=\"540\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Implicit-mapping.png 960w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Implicit-mapping-300x169.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Implicit-mapping-768x432.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Implicit-mapping-20x11.png 20w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-9644\" class=\"wp-caption-text\">Figura 1: Replica\u00e7\u00e3o cruzada de data center (XDCR) entre dois buckets com mapeamento impl\u00edcito<\/p><\/div>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>A Figura 1 acima mostra uma replica\u00e7\u00e3o de Bucket para Bucket usando mapeamento impl\u00edcito. Observe que as cole\u00e7\u00f5es padr\u00e3o de origem e as cole\u00e7\u00f5es padr\u00e3o de destino s\u00e3o mapeadas juntas (n\u00e3o mostradas na figura).<\/p>\n<p>Todos os namespaces n\u00e3o mapeados ser\u00e3o <strong>n\u00e3o<\/strong> ser replicado. Se os namespaces n\u00e3o mapeados forem criados posteriormente, o XDCR recuperar\u00e1 os dados ausentes usando uma replica\u00e7\u00e3o de backfill. (Explicarei o pipeline de backfill em uma se\u00e7\u00e3o posterior).<\/p>\n<h3>Mapeamento expl\u00edcito entre cole\u00e7\u00f5es<\/h3>\n<p>Se precisar de um controle mais granular sobre a replica\u00e7\u00e3o de dados, experimente o mapeamento expl\u00edcito.<\/p>\n<p>O mapeamento expl\u00edcito exige que os usu\u00e1rios <strong>explicitamente<\/strong> definem rela\u00e7\u00f5es de namespace. O mapeamento de um escopo para outro escopo significa que todas as cole\u00e7\u00f5es dentro desse escopo s\u00e3o implicitamente mapeadas. Entretanto, o mapeamento de uma Collection para outra Collection n\u00e3o afeta nenhum outro namespace.<\/p>\n<p>O mapeamento expl\u00edcito \u00e9 realizado por meio do uso de <strong>regras de mapeamento<\/strong> por meio da interface de linha de comando (CLI). A interface do usu\u00e1rio do console XDCR oferece uma abstra\u00e7\u00e3o para que voc\u00ea n\u00e3o precise inserir regras de mapeamento manualmente.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<div id=\"attachment_9646\" style=\"width: 910px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-9646\" class=\"size-large wp-image-9646\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/explicitMappingUI-1024x583.png\" alt=\"Cross Data Center Replication (XDCR) user interface for explicit mapping rules\" width=\"900\" height=\"512\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/explicitMappingUI-1024x583.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/explicitMappingUI-300x171.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/explicitMappingUI-768x438.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/explicitMappingUI-1536x875.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/explicitMappingUI-2048x1167.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/explicitMappingUI-20x11.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/explicitMappingUI-1320x752.png 1320w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><p id=\"caption-attachment-9646\" class=\"wp-caption-text\">Figura 3: A interface do usu\u00e1rio do XDCR oferece uma experi\u00eancia f\u00e1cil de usar para configurar o mapeamento expl\u00edcito e oculta a necessidade de inserir manualmente as regras de mapeamento<\/p><\/div>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>A documenta\u00e7\u00e3o do Couchbase Server inclui <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/clusters-and-availability\/xdcr-with-scopes-and-collections.html?ref=blog#rules-for-explicit-mappings\" target=\"_blank\" rel=\"noopener\">uma explica\u00e7\u00e3o detalhada das regras de mapeamento e como us\u00e1-las<\/a>. As regras de mapeamento informam programaticamente ao XDCR como fazer a correspond\u00eancia dos namespaces por nome.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<div id=\"attachment_9645\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-9645\" class=\"size-full wp-image-9645\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/Explicit-mapping.png\" alt=\"Explicit mapping between two Buckets in Couchbase using Cross Data Center Replication (XDCR)\" width=\"960\" height=\"540\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Explicit-mapping.png 960w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Explicit-mapping-300x169.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Explicit-mapping-768x432.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Explicit-mapping-20x11.png 20w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-9645\" class=\"wp-caption-text\">Figura 2: Replica\u00e7\u00e3o entre dois Buckets usando mapeamento expl\u00edcito com duas regras especificadas: uma regra de mapeamento de escopo para escopo e uma regra de mapeamento de cole\u00e7\u00e3o para cole\u00e7\u00e3o<\/p><\/div>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>As regras expl\u00edcitas de mapeamento oferecem a voc\u00ea um novo n\u00edvel de flexibilidade no mapeamento de cole\u00e7\u00f5es. Voc\u00ea tamb\u00e9m pode alterar as regras em tempo real. O XDCR aceita todas as novas regras e, em seguida, garante de forma inteligente que todos os dados sejam replicados. N\u00f3s<\/p>\n<h4>Uso do modo de migra\u00e7\u00e3o para migrar para cole\u00e7\u00f5es<\/h4>\n<p>Quando voc\u00ea faz upgrade para o Couchbase Server 7.0, todos os seus dados residem na (nova) cole\u00e7\u00e3o padr\u00e3o dentro dos seus Buckets existentes.<\/p>\n<p>Usando <strong>modo de migra\u00e7\u00e3o<\/strong> Na replica\u00e7\u00e3o entre data centers (XDCR), voc\u00ea pode migrar dados para cole\u00e7\u00f5es individuais em um bucket de destino <em>sem qualquer tempo de inatividade do aplicativo<\/em>. O modo de migra\u00e7\u00e3o \u00e9 uma vers\u00e3o especializada do mapeamento expl\u00edcito. Ele utiliza o mecanismo de filtragem avan\u00e7ada do XDCR para realizar a filtragem baseada em fluxo \u00e0 medida que os documentos s\u00e3o transmitidos do Bucket de origem. Dependendo das regras de migra\u00e7\u00e3o que voc\u00ea especificar, o documento ser\u00e1 replicado para a cole\u00e7\u00e3o de destino especificada.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<div id=\"attachment_9647\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-9647\" class=\"size-full wp-image-9647\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/migration-mode.png\" alt=\"Migration mode too route documents for data replication in Couchbase\" width=\"960\" height=\"540\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/migration-mode.png 960w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/migration-mode-300x169.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/migration-mode-768x432.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/migration-mode-20x11.png 20w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-9647\" class=\"wp-caption-text\">Figura 4: Modo de migra\u00e7\u00e3o usando diferentes regras de migra\u00e7\u00e3o para encaminhar documentos para seus respectivos locais<\/p><\/div>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>A documenta\u00e7\u00e3o do Couchbase Server tem <a href=\"https:\/\/docs.couchbase.com\/server\/current\/rest-api\/rest-xdcr-create-replication.html?ref=blog#migration-mode\" target=\"_blank\" rel=\"noopener\">Mais detalhes e exemplos sobre o modo de migra\u00e7\u00e3o<\/a>.<\/p>\n<h2>Bastidores do XDCR com escopos e cole\u00e7\u00f5es<\/h2>\n<h3>Tubula\u00e7\u00e3o principal<\/h3>\n<p>Quando uma replica\u00e7\u00e3o \u00e9 criada, ela \u00e9 convertida em uma <strong>especifica\u00e7\u00e3o de replica\u00e7\u00e3o<\/strong> e armazenado internamente. Em seguida, o XDCR l\u00ea a especifica\u00e7\u00e3o de replica\u00e7\u00e3o (e suas configura\u00e7\u00f5es) e cria um <strong>tubula\u00e7\u00e3o<\/strong> que solicita dados do Bucket de origem. O pipeline replica fielmente cada documento para o bucket de destino (exceto qualquer filtragem avan\u00e7ada em vigor).<\/p>\n<p>O processo acima permanece o mesmo no Couchbase Server 7.0. Portanto, se um de seus Buckets de origem contiver v\u00e1rias Cole\u00e7\u00f5es de origem, o XDCR solicitar\u00e1 todas elas. Esse comportamento \u00e9 chamado de <strong>tubula\u00e7\u00e3o principal<\/strong>. O pipeline principal replica um documento de origem para o destino usando mapeamento impl\u00edcito ou expl\u00edcito. Se o cluster de destino n\u00e3o contiver o namespace mapeado, o XDCR descartar\u00e1 o documento \"no ch\u00e3o\". Em seguida, ele continua a replicar a pr\u00f3xima muta\u00e7\u00e3o.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<div id=\"attachment_9648\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-9648\" class=\"size-full wp-image-9648\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/main-pipeline.png\" alt=\"Data replication for all documents in Couchbase\" width=\"960\" height=\"540\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/main-pipeline.png 960w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/main-pipeline-300x169.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/main-pipeline-768x432.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/main-pipeline-20x11.png 20w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-9648\" class=\"wp-caption-text\">Figura 5: Replica\u00e7\u00e3o de todos os documentos do Bucket de origem com uma cole\u00e7\u00e3o de destino ausente<\/p><\/div>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>Durante a replica\u00e7\u00e3o, o XDCR observa continuamente se h\u00e1 cole\u00e7\u00f5es de destino novas ou removidas. Quando o XDCR detecta uma nova cole\u00e7\u00e3o de destino, ele verifica se um novo mapeamento pode ser estabelecido. Se um novo mapeamento for poss\u00edvel, o pipeline principal replicar\u00e1 com \u00eaxito os dados para o namespace de destino.<\/p>\n<p>\u00c9 importante entender que um fluxo de replica\u00e7\u00e3o \u00e9 sequencial. Se o XDCR tiver descartado um documento anteriormente, um fluxo de sequ\u00eancia n\u00e3o poder\u00e1 \"retroceder\" para um ponto anterior do documento perdido. O XDCR precisa replicar todas as muta\u00e7\u00f5es perdidas; caso contr\u00e1rio, haver\u00e1 dados ausentes.<\/p>\n<p><em>Uma observa\u00e7\u00e3o: essa incapacidade de retroceder (sem Cole\u00e7\u00f5es) \u00e9 exatamente o motivo pelo qual existe uma op\u00e7\u00e3o chamada \"Salvar e reiniciar a replica\u00e7\u00e3o\" ao editar a Express\u00e3o de filtragem avan\u00e7ada no Couchbase Server 6.5. Quando voc\u00ea usa a op\u00e7\u00e3o \"Save and Restart Replication\" (Salvar e reiniciar a replica\u00e7\u00e3o), o pipeline recome\u00e7a e faz o streaming a partir da sequ\u00eancia 0 para garantir que todos os documentos sejam replicados. Essa solu\u00e7\u00e3o n\u00e3o funcionar\u00e1 para Cole\u00e7\u00f5es.<\/em><\/p>\n<h3>Tubula\u00e7\u00e3o de aterro<\/h3>\n<p>No Couchbase Server 7.0, o XDCR agora inclui o conceito de um pipeline de backfill.<\/p>\n<p>O objetivo do pipeline de backfill \u00e9 transmitir os dados que o pipeline principal descartou anteriormente. Essa abordagem garante que todos os dados de um namespace sejam replicados.<\/p>\n<p>Quando uma nova cole\u00e7\u00e3o de destino \u00e9 detectada, o XDCR cria automaticamente um pipeline de preenchimento e transmite os dados ausentes. Enquanto isso, o pipeline principal continua respons\u00e1vel por transmitir quaisquer muta\u00e7\u00f5es em andamento para a nova cole\u00e7\u00e3o de destino.<\/p>\n<p>Os pipelines de backfill sempre come\u00e7am no modo de baixa prioridade para minimizar o impacto no desempenho dos pipelines principais. Quando o pipeline de backfill termina de transmitir os dados ausentes - com base em um n\u00famero de sequ\u00eancia final definido -, o pipeline de backfill \u00e9 automaticamente desativado.<\/p>\n<p>Todo o processo de constru\u00e7\u00e3o e desmontagem da replica\u00e7\u00e3o de backfill \u00e9 totalmente automatizado, portanto, acontece nos bastidores sem alertar os usu\u00e1rios. No entanto, \u00e9 importante que voc\u00ea entenda a arquitetura, pois seus usu\u00e1rios podem perceber que alguns documentos criados posteriormente nos Buckets de origem chegam antes das muta\u00e7\u00f5es anteriores.<\/p>\n<p>A Figura 6 abaixo ilustra como funciona o pipeline de replica\u00e7\u00e3o de backfill.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<div id=\"attachment_9649\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-9649\" class=\"size-full wp-image-9649\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/backfill-pipeline.png\" alt=\"Backfill pipeline streaming data replication in Couchbase\" width=\"960\" height=\"540\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/backfill-pipeline.png 960w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/backfill-pipeline-300x169.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/backfill-pipeline-768x432.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/backfill-pipeline-20x11.png 20w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-9649\" class=\"wp-caption-text\">Figure 6: Backfill Pipeline streaming data for `collectionB` only for previously missed sequence numbers<\/p><\/div>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>In the above diagram, a new `collectionB` was created on the target Bucket. XDCR on Cluster A detected the new Collection when its main pipeline was streaming out mutations at sequence number 200. It then created a backfill pipeline, which is responsible for `collectionB` mutations from sequence number 0 to 200. All ongoing `collectionB` mutations (201+) will go through the main pipeline.<\/p>\n<p>Em resumo, o pipeline principal permite que o XDCR continue a replicar as muta\u00e7\u00f5es mais recentes continuamente; o pipeline de backfill permite que um fluxo de replica\u00e7\u00e3o de prioridade mais baixa replique quaisquer dados perdidos anteriormente.<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>Em resumo, a replica\u00e7\u00e3o de cole\u00e7\u00f5es do XDCR monitora de forma inteligente as altera\u00e7\u00f5es no gerenciamento de cole\u00e7\u00f5es de origem e de destino. Ele pode replicar de forma din\u00e2mica (por meio de mapeamento impl\u00edcito) ou program\u00e1tica (por meio de mapeamento expl\u00edcito). O XDCR Collections permite que voc\u00ea altere dinamicamente os modos entre mapeamento impl\u00edcito e expl\u00edcito, bem como modifique as regras de mapeamento expl\u00edcito em tempo real, sem a necessidade de reiniciar a replica\u00e7\u00e3o a partir da sequ\u00eancia 0.<\/p>\n<p>Os escopos e as cole\u00e7\u00f5es no Couchbase Server 7.0 abrem um mundo totalmente novo de casos de uso para os usu\u00e1rios e clientes do Couchbase. Com o suporte do XDCR a escopos e cole\u00e7\u00f5es - e a flexibilidade que ele oferece - o Couchbase Server atende a ainda mais necessidades dos clientes do que qualquer vers\u00e3o anterior.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 30px\" aria-hidden=\"true\"><\/div>\n<div style=\"text-align: center\"><strong>Pronto para experimentar o XDCR por conta pr\u00f3pria?<\/strong><\/div>\n<div style=\"text-align: center\"><strong><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/downloads\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Fa\u00e7a o download do Couchbase 7 hoje mesmo<\/a><\/strong><\/div>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Cross Data Center Replication (XDCR) is a database essential. XDCR ensures database High Availability (HA), disaster recovery, and geo-locality. With the Couchbase Server 7.0 release, XDCR also supports new individual namespaces called Scopes and Collections within each database Bucket. Support [&hellip;]<\/p>","protected":false},"author":69696,"featured_media":11731,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1821,1816,9415,9336],"tags":[1952,2127,2126,2103,1446],"ppma_author":[9119],"class_list":["post-9643","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-architecture","category-couchbase-server","category-xdcr","category-scopes-and-collections","tag-data-replication","tag-disaster-recovery","tag-high-availability","tag-microservices","tag-multidimensional-scaling"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Introducing XDCR Support for Scopes &amp; Collections in Couchbase 7.0<\/title>\n<meta name=\"description\" content=\"Learn how Cross Data Center Replication (XDCR) now supports data replication between Scopes and Collections in Couchbase Server 7.0 in two different ways.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/xdcr-architecture-replicating-with-collections\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing XDCR Support for Scopes &amp; Collections in Couchbase 7.0\" \/>\n<meta property=\"og:description\" content=\"Learn how Cross Data Center Replication (XDCR) now supports data replication between Scopes and Collections in Couchbase Server 7.0 in two different ways.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/xdcr-architecture-replicating-with-collections\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-08-18T07:00:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:46:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/cross-data-center-replication-xdcr-support-scopes-collections-couchbase-server-7-0-social.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"418\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Neil Huang, Senior Software Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/cross-data-center-replication-xdcr-support-scopes-collections-couchbase-server-7-0-social.png\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Neil Huang, Senior Software Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/\"},\"author\":{\"name\":\"Neil Huang, Principal Software Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/af0dd16f7a6663fcaf0746618bdbc8f8\"},\"headline\":\"Introducing XDCR Support for Scopes &amp; Collections in Couchbase 7.0\",\"datePublished\":\"2021-08-18T07:00:29+00:00\",\"dateModified\":\"2025-06-14T03:46:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/\"},\"wordCount\":1543,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/cross-data-center-replication-xdcr-support-scopes-collections-couchbase-server-7-0.png\",\"keywords\":[\"Data Replication\",\"Disaster Recovery\",\"High Availability\",\"microservices\",\"Multidimensional Scaling\"],\"articleSection\":[\"Couchbase Architecture\",\"Couchbase Server\",\"Cross Data Center Replication (XDCR)\",\"Scopes and Collections\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/\",\"name\":\"Introducing XDCR Support for Scopes &amp; Collections in Couchbase 7.0\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/cross-data-center-replication-xdcr-support-scopes-collections-couchbase-server-7-0.png\",\"datePublished\":\"2021-08-18T07:00:29+00:00\",\"dateModified\":\"2025-06-14T03:46:00+00:00\",\"description\":\"Learn how Cross Data Center Replication (XDCR) now supports data replication between Scopes and Collections in Couchbase Server 7.0 in two different ways.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/cross-data-center-replication-xdcr-support-scopes-collections-couchbase-server-7-0.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/cross-data-center-replication-xdcr-support-scopes-collections-couchbase-server-7-0.png\",\"width\":1200,\"height\":628,\"caption\":\"Learn how XDCR now supports replication between Scopes and Collections in Couchbase Server 7.0\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducing XDCR Support for Scopes &amp; Collections in Couchbase 7.0\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/af0dd16f7a6663fcaf0746618bdbc8f8\",\"name\":\"Neil Huang, Principal Software Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4658437f7d44d54dc499becf92006d00\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e1b016e86d1634bc3c1fd4abaaee131dbfe65716f8e02411462878ce5a24709c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e1b016e86d1634bc3c1fd4abaaee131dbfe65716f8e02411462878ce5a24709c?s=96&d=mm&r=g\",\"caption\":\"Neil Huang, Principal Software Engineer, Couchbase\"},\"description\":\"Neil Huang is a Principal Software Engineer at Couchbase, and is a developer for cross datacenter replication (XDCR). Neil has more than 10 years of experience working in enterprise software. Prior to Couchbase, he was a member of the data stack software team for Enterprise Data Storage, HPE-3PAR, as well as a data storage startup building a next-generation distributed data platform. Neil received both his bachelor\u2019s degree in electrical engineering\/computer engineering and master\u2019s degree in computer network engineering from UCLA.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/neilhuang\/\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/neil_huang\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Apresentando o suporte XDCR para escopos e cole\u00e7\u00f5es no Couchbase 7.0","description":"Saiba como a Replica\u00e7\u00e3o entre centros de dados (XDCR) agora oferece suporte \u00e0 replica\u00e7\u00e3o de dados entre Escopos e Cole\u00e7\u00f5es no Couchbase Server 7.0 de duas maneiras diferentes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/xdcr-architecture-replicating-with-collections\/","og_locale":"pt_BR","og_type":"article","og_title":"Introducing XDCR Support for Scopes &amp; Collections in Couchbase 7.0","og_description":"Learn how Cross Data Center Replication (XDCR) now supports data replication between Scopes and Collections in Couchbase Server 7.0 in two different ways.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/xdcr-architecture-replicating-with-collections\/","og_site_name":"The Couchbase Blog","article_published_time":"2021-08-18T07:00:29+00:00","article_modified_time":"2025-06-14T03:46:00+00:00","og_image":[{"width":800,"height":418,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/cross-data-center-replication-xdcr-support-scopes-collections-couchbase-server-7-0-social.png","type":"image\/png"}],"author":"Neil Huang, Senior Software Engineer, Couchbase","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/cross-data-center-replication-xdcr-support-scopes-collections-couchbase-server-7-0-social.png","twitter_misc":{"Written by":"Neil Huang, Senior Software Engineer, Couchbase","Est. reading time":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/"},"author":{"name":"Neil Huang, Principal Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/af0dd16f7a6663fcaf0746618bdbc8f8"},"headline":"Introducing XDCR Support for Scopes &amp; Collections in Couchbase 7.0","datePublished":"2021-08-18T07:00:29+00:00","dateModified":"2025-06-14T03:46:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/"},"wordCount":1543,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/cross-data-center-replication-xdcr-support-scopes-collections-couchbase-server-7-0.png","keywords":["Data Replication","Disaster Recovery","High Availability","microservices","Multidimensional Scaling"],"articleSection":["Couchbase Architecture","Couchbase Server","Cross Data Center Replication (XDCR)","Scopes and Collections"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/","url":"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/","name":"Apresentando o suporte XDCR para escopos e cole\u00e7\u00f5es no Couchbase 7.0","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/cross-data-center-replication-xdcr-support-scopes-collections-couchbase-server-7-0.png","datePublished":"2021-08-18T07:00:29+00:00","dateModified":"2025-06-14T03:46:00+00:00","description":"Saiba como a Replica\u00e7\u00e3o entre centros de dados (XDCR) agora oferece suporte \u00e0 replica\u00e7\u00e3o de dados entre Escopos e Cole\u00e7\u00f5es no Couchbase Server 7.0 de duas maneiras diferentes.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/cross-data-center-replication-xdcr-support-scopes-collections-couchbase-server-7-0.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/cross-data-center-replication-xdcr-support-scopes-collections-couchbase-server-7-0.png","width":1200,"height":628,"caption":"Learn how XDCR now supports replication between Scopes and Collections in Couchbase Server 7.0"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/xdcr-architecture-replicating-with-collections\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Introducing XDCR Support for Scopes &amp; Collections in Couchbase 7.0"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/af0dd16f7a6663fcaf0746618bdbc8f8","name":"Neil Huang, engenheiro de software principal, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4658437f7d44d54dc499becf92006d00","url":"https:\/\/secure.gravatar.com\/avatar\/e1b016e86d1634bc3c1fd4abaaee131dbfe65716f8e02411462878ce5a24709c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e1b016e86d1634bc3c1fd4abaaee131dbfe65716f8e02411462878ce5a24709c?s=96&d=mm&r=g","caption":"Neil Huang, Principal Software Engineer, Couchbase"},"description":"Neil Huang is a Principal Software Engineer at Couchbase, and is a developer for cross datacenter replication (XDCR). Neil has more than 10 years of experience working in enterprise software. Prior to Couchbase, he was a member of the data stack software team for Enterprise Data Storage, HPE-3PAR, as well as a data storage startup building a next-generation distributed data platform. Neil received both his bachelor\u2019s degree in electrical engineering\/computer engineering and master\u2019s degree in computer network engineering from UCLA.","sameAs":["https:\/\/www.linkedin.com\/in\/neilhuang\/"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/neil_huang\/"}]}},"authors":[{"term_id":9119,"user_id":69696,"is_guest":0,"slug":"neil_huang","display_name":"Neil Huang, Senior Software Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/e1b016e86d1634bc3c1fd4abaaee131dbfe65716f8e02411462878ce5a24709c?s=96&d=mm&r=g","author_category":"","last_name":"Huang, Senior Software Engineer, Couchbase","first_name":"Neil","job_title":"","user_url":"","description":"Neil Huang \u00e9 engenheiro de software s\u00eanior da Couchbase e desenvolvedor da replica\u00e7\u00e3o entre datacenters (XDCR). Neil tem mais de 10 anos de experi\u00eancia trabalhando com software empresarial. Antes da Couchbase, ele foi membro da equipe de software de pilha de dados da Enterprise Data Storage, HPE-3PAR, bem como de uma startup de armazenamento de dados que estava criando uma plataforma de dados distribu\u00eddos de \u00faltima gera\u00e7\u00e3o. Neil \u00e9 bacharel em engenharia el\u00e9trica\/engenharia da computa\u00e7\u00e3o e mestre em engenharia de redes de computadores pela UCLA."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/9643","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/69696"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=9643"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/9643\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/11731"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=9643"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=9643"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=9643"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=9643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}