{"id":16253,"date":"2024-09-06T10:26:55","date_gmt":"2024-09-06T17:26:55","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=16253"},"modified":"2024-09-09T08:49:42","modified_gmt":"2024-09-09T15:49:42","slug":"couchbase-xdcr-transactions","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-xdcr-transactions\/","title":{"rendered":"Entendendo como as transa\u00e7\u00f5es funcionam em r\u00e9plicas entre data centers (XDCR)"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">O Couchbase oferece um conjunto impressionante de ferramentas e recursos avan\u00e7ados em seus servi\u00e7os de plataforma. Entre eles, <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/clusters-and-availability\/xdcr-overview.html\"><span style=\"font-weight: 400;\">Replica\u00e7\u00e3o entre data centers<\/span><\/a> <span style=\"font-weight: 400;\">garante a replica\u00e7\u00e3o perfeita de dados em v\u00e1rias regi\u00f5es geogr\u00e1ficas, enquanto as transa\u00e7\u00f5es ACID suportam de forma robusta as cargas de trabalho de transa\u00e7\u00f5es, aumentando a confiabilidade e a efici\u00eancia.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Muitos clientes frequentemente se deparam com uma pergunta comum: Por que h\u00e1 uma diferen\u00e7a na contagem de documentos entre os clusters de origem e de destino ao usar transa\u00e7\u00f5es e XDCR (Cross Data Center Replication)? Certos tipos de documentos nunca aparecem no cluster de destino, o que gera confus\u00e3o sobre se esse problema est\u00e1 relacionado ao XDCR. Antes de nos aprofundarmos nos mecanismos subjacentes, vamos primeiro esclarecer alguns termos importantes.<\/span><\/p>\n<h2>O que \u00e9 XDCR?<\/h2>\n<p><span style=\"font-weight: 400;\">O XDCR facilita a replica\u00e7\u00e3o de dados entre bancos de dados ou <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/buckets-memory-and-storage\/buckets.html\"><span style=\"font-weight: 400;\">baldes<\/span><\/a><span style=\"font-weight: 400;\"> que podem residir em diferentes clusters, provedores de nuvem ou data centers. O XDCR tamb\u00e9m oferece suporte \u00e0 replica\u00e7\u00e3o intra-cluster, permitindo a replica\u00e7\u00e3o de dados entre bancos de dados diferentes dentro do mesmo cluster.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Projetado para clusters de bancos de dados distribu\u00eddos geograficamente, o XDCR protege contra falhas no data center e oferece suporte \u00e0 alta disponibilidade com configura\u00e7\u00f5es de cluster ativo-ativo. O protocolo subjacente usado pelo XDCR \u00e9 o Data Change Protocol (DCP), que tamb\u00e9m \u00e9 empregado para replica\u00e7\u00e3o intra-cluster, garantindo replica\u00e7\u00e3o de mem\u00f3ria para mem\u00f3ria de baixa lat\u00eancia.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">O XDCR oferece opera\u00e7\u00f5es unidirecionais e bidirecionais e oferece suporte \u00e0 replica\u00e7\u00e3o ativo-ativo com resolu\u00e7\u00e3o autom\u00e1tica de conflitos. Ele tamb\u00e9m permite a replica\u00e7\u00e3o filtrada para replicar subconjuntos de documentos com base nas necessidades do cluster de destino.<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-16258 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1-1024x582.png\" alt=\"\" width=\"900\" height=\"512\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1-1024x582.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1-300x171.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1-768x437.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1-1536x873.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1-1320x750.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1.png 1550w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/p>\n<h2>O que s\u00e3o transa\u00e7\u00f5es?<\/h2>\n<p><span style=\"font-weight: 400;\">Uma transa\u00e7\u00e3o \u00e9 uma \u00fanica unidade l\u00f3gica de trabalho que consiste em v\u00e1rias opera\u00e7\u00f5es de banco de dados que s\u00e3o executadas como um todo ou n\u00e3o s\u00e3o executadas. As transa\u00e7\u00f5es do Couchbase permitem <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/data\/transactions.html#overview\"><span style=\"font-weight: 400;\">\u00c1CIDO<\/span><\/a><span style=\"font-weight: 400;\"> (at\u00f4micas, consistentes, isoladas e dur\u00e1veis) no banco de dados. O Couchbase oferece suporte a transa\u00e7\u00f5es ACID distribu\u00eddas de v\u00e1rios documentos e v\u00e1rios n\u00f3s em escala, sem sacrificar o desempenho e a alta disponibilidade.<\/span><\/p>\n<h2>O que \u00e9 um registro de transa\u00e7\u00e3o ativo?<\/h2>\n<p><span style=\"font-weight: 400;\">No Couchbase, os dados em um banco de dados ou bucket s\u00e3o divididos entre cont\u00eaineres l\u00f3gicos chamados <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/buckets-memory-and-storage\/vbuckets.html\"><span style=\"font-weight: 400;\">vbucket<\/span><\/a><span style=\"font-weight: 400;\">cada um residindo em um \u00fanico n\u00f3. Cada bucket do servidor Couchbase tem 1024 vbucket (64 no MacOS). Os Active Transaction Records (ATR) s\u00e3o documentos de metadados em cada vbucket que registram cada tentativa de transa\u00e7\u00e3o ativa, indicando se uma tentativa foi confirmada. As entradas de ATR servem como interruptores para marcar as transa\u00e7\u00f5es como confirmadas. Os ATRs s\u00e3o criados e mantidos automaticamente pelo Couchbase e podem ser facilmente identificados por seu prefixo <\/span><span style=\"font-weight: 400;\">_txn:atr-<\/span><span style=\"font-weight: 400;\">. Esses registros podem ser visualizados, mas n\u00e3o devem ser alterados por usu\u00e1rios ou aplicativos.<\/span><\/p>\n<h2>Como o XDCR replica os documentos de transa\u00e7\u00e3o?<\/h2>\n<p><span style=\"font-weight: 400;\">No Couchbase, as transa\u00e7\u00f5es t\u00eam como escopo apenas um \u00fanico cluster prim\u00e1rio e n\u00e3o h\u00e1 suporte para transa\u00e7\u00f5es na configura\u00e7\u00e3o ativo-ativo. Uma transa\u00e7\u00e3o pode envolver v\u00e1rias tentativas, cada uma criando uma entrada em um documento ATR. Essas entradas s\u00e3o cruciais como fontes \u00fanicas de verdade para as tentativas. Os ATRs residem na cole\u00e7\u00e3o padr\u00e3o do compartimento do primeiro documento alterado, a menos que especificado de outra forma. Cada cole\u00e7\u00e3o usada para ATRs conter\u00e1 1.024 documentos ATR. Durante a fase de prepara\u00e7\u00e3o, as muta\u00e7\u00f5es dentro de uma transa\u00e7\u00e3o s\u00e3o colocadas em um intervalo de <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/data\/extended-attributes-fundamentals.html\"><span style=\"font-weight: 400;\">atributos estendidos<\/span><\/a><span style=\"font-weight: 400;\"> (XATTRs), permanecendo invis\u00edvel para o cluster do Couchbase at\u00e9 a fase de confirma\u00e7\u00e3o. A inten\u00e7\u00e3o de grava\u00e7\u00e3o em uma transa\u00e7\u00e3o \u00e9 especificada nos XATTRs do documento e atua como um bloqueio de grava\u00e7\u00e3o, impedindo que outros clientes modifiquem o mesmo documento at\u00e9 que a transa\u00e7\u00e3o seja confirmada ou abortada. Essas inten\u00e7\u00f5es de grava\u00e7\u00e3o funcionam como bloqueios exclusivamente para o cluster prim\u00e1rio.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">O XDCR replica os dados do cluster de origem para o de destino de forma ass\u00edncrona, oferecendo suporte \u00e0 consist\u00eancia eventual para atualiza\u00e7\u00f5es transacionais. Por isso, uma confirma\u00e7\u00e3o no cluster de origem n\u00e3o garante que a transa\u00e7\u00e3o tenha sido replicada pelo XDCR. Depois que uma transa\u00e7\u00e3o \u00e9 confirmada no cluster de origem, as atualiza\u00e7\u00f5es s\u00e3o replicadas para o cluster de destino, uma a uma. Isso significa que uma transa\u00e7\u00e3o confirmada no cluster de origem n\u00e3o garante o comprometimento imediato no cluster de destino. Em caso de failover, uma transa\u00e7\u00e3o confirmada pode ser perdida se n\u00e3o for confirmada no destino antes do failover, portanto, os aplicativos devem aguardar a conclus\u00e3o de todas as solicita\u00e7\u00f5es pendentes ou abortar as solicita\u00e7\u00f5es antes de fazer o failover para o cluster secund\u00e1rio.<\/span><\/p>\n<h2>Etapas de replica\u00e7\u00e3o de transa\u00e7\u00f5es<\/h2>\n<p><span style=\"font-weight: 400;\">As etapas a seguir descrevem a l\u00f3gica da transa\u00e7\u00e3o e a replica\u00e7\u00e3o de dados usando o XDCR:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>In\u00edcio da tentativa de transa\u00e7\u00e3o<\/b><span style=\"font-weight: 400;\">: Cada tentativa de transa\u00e7\u00e3o pelo aplicativo (SDK) cria uma entrada no ATR, funcionando como um bloqueio virtual. Feito em ambos os n\u00f3s, mas mostrado em um na figura abaixo para simplificar.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Altera\u00e7\u00f5es de prepara\u00e7\u00e3o<\/b><span style=\"font-weight: 400;\">: As altera\u00e7\u00f5es transacionais s\u00e3o preparadas nos XATTRs dos documentos de destino, sem afetar os corpos dos documentos. Isso pode ocorrer em v\u00e1rios n\u00f3s e documentos. Essas altera\u00e7\u00f5es de est\u00e1gio funcionam como um bloqueio contra quaisquer outras transa\u00e7\u00f5es nesses documentos.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Compromisso<\/b><span style=\"font-weight: 400;\">: Depois que a l\u00f3gica da transa\u00e7\u00e3o \u00e9 completamente executada, a tentativa de transa\u00e7\u00e3o \u00e9 confirmada, atualizando a entrada de tentativa no ATR (feita em ambos os n\u00f3s, mas mostrada em um na figura abaixo para simplificar) e a lista de IDs de documentos envolvidos na transa\u00e7\u00e3o \u00e9 atualizada. Os atores transacionais podem ler as informa\u00e7\u00f5es atualizadas dos XATTRs, se necess\u00e1rio.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Finaliza\u00e7\u00e3o de altera\u00e7\u00f5es<\/b><span style=\"font-weight: 400;\">: As altera\u00e7\u00f5es transacionais s\u00e3o movidas de XATTRs de documentos para corpos de documentos (feito pelo SDK, mas mostrado diretamente na imagem abaixo para simplificar)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Conclus\u00e3o e limpeza<\/b><span style=\"font-weight: 400;\">: A tentativa de transa\u00e7\u00e3o \u00e9 marcada como \"Conclu\u00edda\" e removida do ATR.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Replica\u00e7\u00e3o<\/b><span style=\"font-weight: 400;\">: As altera\u00e7\u00f5es do documento rec\u00e9m-atualizado s\u00e3o replicadas uma a uma para o cluster de destino usando o XDCR.<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-16255\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image2-1024x762.png\" alt=\"\" width=\"900\" height=\"670\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image2-1024x762.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image2-300x223.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image2-768x571.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image2.png 1159w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p><span style=\"font-weight: 400;\">O XDCR \u00e9 uma ferramenta avan\u00e7ada para replica\u00e7\u00e3o em diferentes data centers e regi\u00f5es geogr\u00e1ficas, oferecendo suporte \u00e0 replica\u00e7\u00e3o unidirecional e bidirecional com consist\u00eancia eventual para altera\u00e7\u00f5es transacionais. Por padr\u00e3o, as altera\u00e7\u00f5es n\u00e3o confirmadas em uma transa\u00e7\u00e3o e os metadados para registro de transa\u00e7\u00f5es nunca s\u00e3o enviados aos clusters de destino, garantindo a integridade e a consist\u00eancia dos dados em ambientes replicados.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A compreens\u00e3o desses mecanismos pode ajudar a esclarecer por que determinados documentos podem n\u00e3o aparecer imediatamente no cluster de destino, pois eles dependem dos estados transacionais e dos processos de replica\u00e7\u00e3o descritos acima.<\/span><\/p>\n<p><br style=\"font-weight: 400;\" \/><br style=\"font-weight: 400;\" \/><\/p>","protected":false},"excerpt":{"rendered":"<p>Couchbase offers an impressive array of powerful tools and features within its platform services. Notably, Cross Data Centre Replication ensures seamless data replication across various geographies, while ACID transactions robustly support transaction workloads, enhancing both reliability and efficiency. Many customers [&hellip;]<\/p>","protected":false},"author":85517,"featured_media":16258,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1821,1816,9415,2396],"tags":[9778,1976],"ppma_author":[10017],"class_list":["post-16253","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-architecture","category-couchbase-server","category-xdcr","category-transactions","tag-cloud-data-replication","tag-dcp"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Understanding How Transactions Work in Cross Data Center Replications (XDCR) - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Learn how Couchbase XDCR and transactions handle data replication and why document counts may differ between source and destination clusters\" \/>\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\/couchbase-xdcr-transactions\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Understanding How Transactions Work in Cross Data Center Replications (XDCR)\" \/>\n<meta property=\"og:description\" content=\"Learn how Couchbase XDCR and transactions handle data replication and why document counts may differ between source and destination clusters\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-xdcr-transactions\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-06T17:26:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-09T15:49:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1550\" \/>\n\t<meta property=\"og:image:height\" content=\"881\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Rohit Kumar, Sr. Solutions Engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rohit Kumar, Sr. Solutions Engineer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/\"},\"author\":{\"name\":\"Rohit Kumar, Sr. Solutions Engineer\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/82c0b7ad32f97f54dcae300546cc382c\"},\"headline\":\"Understanding How Transactions Work in Cross Data Center Replications (XDCR)\",\"datePublished\":\"2024-09-06T17:26:55+00:00\",\"dateModified\":\"2024-09-09T15:49:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/\"},\"wordCount\":930,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1.png\",\"keywords\":[\"cloud data replication\",\"DCP\"],\"articleSection\":[\"Couchbase Architecture\",\"Couchbase Server\",\"Cross Data Center Replication (XDCR)\",\"Transactions\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/\",\"name\":\"Understanding How Transactions Work in Cross Data Center Replications (XDCR) - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1.png\",\"datePublished\":\"2024-09-06T17:26:55+00:00\",\"dateModified\":\"2024-09-09T15:49:42+00:00\",\"description\":\"Learn how Couchbase XDCR and transactions handle data replication and why document counts may differ between source and destination clusters\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1.png\",\"width\":1550,\"height\":881},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Understanding How Transactions Work in Cross Data Center Replications (XDCR)\"}]},{\"@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\/82c0b7ad32f97f54dcae300546cc382c\",\"name\":\"Rohit Kumar, Sr. Solutions Engineer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/bb41f6e793c4f310548c1fc7afea6ba4\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/rohitkukmar-couchbase.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/rohitkukmar-couchbase.png\",\"caption\":\"Rohit Kumar, Sr. Solutions Engineer\"},\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/rohitkumar\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Understanding How Transactions Work in Cross Data Center Replications (XDCR) - The Couchbase Blog","description":"Saiba como o Couchbase XDCR e as transa\u00e7\u00f5es lidam com a replica\u00e7\u00e3o de dados e por que as contagens de documentos podem ser diferentes entre os clusters de origem e de destino","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\/couchbase-xdcr-transactions\/","og_locale":"pt_BR","og_type":"article","og_title":"Understanding How Transactions Work in Cross Data Center Replications (XDCR)","og_description":"Learn how Couchbase XDCR and transactions handle data replication and why document counts may differ between source and destination clusters","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-xdcr-transactions\/","og_site_name":"The Couchbase Blog","article_published_time":"2024-09-06T17:26:55+00:00","article_modified_time":"2024-09-09T15:49:42+00:00","og_image":[{"width":1550,"height":881,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1.png","type":"image\/png"}],"author":"Rohit Kumar, Sr. Solutions Engineer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Rohit Kumar, Sr. Solutions Engineer","Est. reading time":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/"},"author":{"name":"Rohit Kumar, Sr. Solutions Engineer","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/82c0b7ad32f97f54dcae300546cc382c"},"headline":"Understanding How Transactions Work in Cross Data Center Replications (XDCR)","datePublished":"2024-09-06T17:26:55+00:00","dateModified":"2024-09-09T15:49:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/"},"wordCount":930,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1.png","keywords":["cloud data replication","DCP"],"articleSection":["Couchbase Architecture","Couchbase Server","Cross Data Center Replication (XDCR)","Transactions"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/","name":"Understanding How Transactions Work in Cross Data Center Replications (XDCR) - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1.png","datePublished":"2024-09-06T17:26:55+00:00","dateModified":"2024-09-09T15:49:42+00:00","description":"Saiba como o Couchbase XDCR e as transa\u00e7\u00f5es lidam com a replica\u00e7\u00e3o de dados e por que as contagens de documentos podem ser diferentes entre os clusters de origem e de destino","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/image1-1.png","width":1550,"height":881},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-xdcr-transactions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Understanding How Transactions Work in Cross Data Center Replications (XDCR)"}]},{"@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\/82c0b7ad32f97f54dcae300546cc382c","name":"Rohit Kumar, engenheiro de solu\u00e7\u00f5es s\u00eanior","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/bb41f6e793c4f310548c1fc7afea6ba4","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/rohitkukmar-couchbase.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/rohitkukmar-couchbase.png","caption":"Rohit Kumar, Sr. Solutions Engineer"},"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/rohitkumar\/"}]}},"authors":[{"term_id":10017,"user_id":85517,"is_guest":0,"slug":"rohitkumar","display_name":"Rohit Kumar, Sr. Solutions Engineer","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/rohitkukmar-couchbase.png","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/rohitkukmar-couchbase.png"},"author_category":"","last_name":"Kumar, Sr. Solutions Engineer","first_name":"Rohit","job_title":"","user_url":"","description":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/16253","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\/85517"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=16253"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/16253\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/16258"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=16253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=16253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=16253"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=16253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}