{"id":2247,"date":"2016-05-10T04:57:03","date_gmt":"2016-05-10T04:57:03","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2247"},"modified":"2024-09-12T02:21:32","modified_gmt":"2024-09-12T09:21:32","slug":"high-performance-consistency","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/high-performance-consistency\/","title":{"rendered":"Consist\u00eancia de consulta NOSQL de alto desempenho com o Couchbase 4.5"},"content":{"rendered":"<h2>Consist\u00eancia de alto desempenho<\/h2>\n<p>Ao usar o Couchbase como seu sistema de registro, fornecemos a melhor experi\u00eancia de indexa\u00e7\u00e3o da categoria usando nosso <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/architecture\/global-secondary-indexes.html\">\u00edndices secund\u00e1rios globais<\/a> e isolamento da carga de trabalho por meio de n\u00f3s de indexa\u00e7\u00e3o dedicados. Aprimoramos ainda mais essa experi\u00eancia no Couchbase 4.5 com dois novos recursos importantes:<\/p>\n<ul>\n<li>\u00cdndices secund\u00e1rios exclusivos na mem\u00f3ria usando um novo mecanismo de armazenamento <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/architecture\/in-memory-indexes.html\">memdb<\/a><\/li>\n<li>Consist\u00eancia de alto desempenho (c\u00f3digo denominado \"AT_PLUS\") que permite a voc\u00ea, desenvolvedor, um controle de granularidade mais preciso do modelo de consist\u00eancia para grava\u00e7\u00f5es e leituras.<\/li>\n<\/ul>\n<p>Neste blog, abordaremos em detalhes o que significa consist\u00eancia de alto desempenho e forneceremos alguns recursos para ajud\u00e1-lo a come\u00e7ar.<\/p>\n<h2>Alguns antecedentes - Como funcionam os \u00edndices secund\u00e1rios globais de consulta<\/h2>\n<p>Os \u00edndices secund\u00e1rios globais no couchbase t\u00eam as seguintes caracter\u00edsticas:<\/p>\n<ul>\n<li>Eles t\u00eam escopo para um \u00fanico n\u00f3 de \u00edndice e n\u00e3o s\u00e3o particionados automaticamente. A princ\u00edpio, isso pode parecer uma limita\u00e7\u00e3o. Na verdade, \u00e9 uma escolha intencional de design que fizemos para manter o desempenho alinhado com o que voc\u00ea espera do Couchbase.<\/li>\n<li>Eles podem ser definidos pelo usu\u00e1rio usando nossa variante sql (N1QL) e s\u00e3o incrivelmente flex\u00edveis. Podemos at\u00e9 mesmo indexar <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/n1ql\/n1ql-language-reference\/indexing-arrays.html\">matrizes<\/a> em documentos json.<\/li>\n<li>H\u00e1 dois mecanismos de armazenamento diferentes dispon\u00edveis:\n<ul>\n<li><strong>Forestdb<\/strong>nosso mecanismo de armazenamento padr\u00e3o no couchbase. Por padr\u00e3o, os \u00edndices do forestdb s\u00e3o atualizados ciclicamente, a cada 200 ms.<\/li>\n<li><strong>Memdb<\/strong>, (<a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/architecture\/in-memory-indexes.html?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">\u00cdndices otimizados para mem\u00f3ria<\/a>) s\u00e3o nossa op\u00e7\u00e3o incrivelmente r\u00e1pida somente na mem\u00f3ria para \u00edndices secund\u00e1rios. Por padr\u00e3o, os \u00edndices memdb s\u00e3o atualizados ciclicamente, a cada 20 ms.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Ao emitir uma consulta N1QL, usando o Couchbase 4.5, agora voc\u00ea tem tr\u00eas op\u00e7\u00f5es para controlar a consist\u00eancia da sua consulta:<\/p>\n<h3>Padr\u00e3o<\/h3>\n<p>Padr\u00e3o, ou \"ilimitado\", s\u00e3o consultas em que a proje\u00e7\u00e3o (conjunto de resultados) inclui todos os dados existentes ou referenciados no estado atual do \u00edndice. Essa \u00e9 a experi\u00eancia de consulta mais r\u00e1pida. A consist\u00eancia n\u00e3o est\u00e1 vinculada \u00e0 sua consulta de forma alguma. Isso \u00e9 \u00f3timo para a maioria dos casos de uso. H\u00e1 casos de uso em que voc\u00ea precisa de uma experi\u00eancia de consist\u00eancia mais imediata. Digamos que, em um perfil de usu\u00e1rio, voc\u00ea atualize o perfil com uma compra recente. Agora, voc\u00ea precisa consultar imediatamente esse mesmo usu\u00e1rio para obter uma lista completa de compras. Se o indexador n\u00e3o tiver indexado a altera\u00e7\u00e3o que voc\u00ea fez no perfil do usu\u00e1rio, o conjunto de resultados da consulta n\u00e3o incluir\u00e1 essa compra recente.<\/p>\n<h3>Solicitar mais<\/h3>\n<p>Request plus s\u00e3o consultas em que a proje\u00e7\u00e3o inclui todas as atualiza\u00e7\u00f5es limitadas a partir do momento em que voc\u00ea emitiu a consulta. O indexador precisa garantir que o \u00edndice em sua proje\u00e7\u00e3o seja limitado para incluir todas as atualiza\u00e7\u00f5es em todas as parti\u00e7\u00f5es do cluster no momento em que a \"solicita\u00e7\u00e3o\" da consulta foi feita. Isso se encaixa no cen\u00e1rio acima, em que um perfil de usu\u00e1rio \u00e9 atualizado para incluir uma compra recente e, em seguida, consulta imediatamente esse documento para ver uma lista consistente de itens comprados. Embora esse tipo de consulta seja muito \u00fatil em determinadas situa\u00e7\u00f5es, \u00e9 caro exigir que o \u00edndice no cluster inclua todas as atualiza\u00e7\u00f5es no momento em que a consulta foi emitida. Isso \u00e9 melhor explicado no diagrama abaixo. Observe como o indexador deve garantir que o \u00edndice esteja atualizado com todas as parti\u00e7\u00f5es em cada n\u00f3 do cluster:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/may\/high-performance-consistency\/request_plus.png\" alt=\"Request Plus\" \/><\/p>\n<h3>Consist\u00eancia de alto desempenho<\/h3>\n<p>Consist\u00eancia de alto desempenho ou \"AT Plus\" s\u00e3o consultas em que a proje\u00e7\u00e3o inclui atualiza\u00e7\u00f5es vinculadas a IDs de sequ\u00eancia de muta\u00e7\u00e3o espec\u00edficos. Cada vez que uma opera\u00e7\u00e3o de muta\u00e7\u00e3o \u00e9 executada a partir de um de nossos SDKs, uma sequ\u00eancia de id de muta\u00e7\u00e3o pode ser obtida especificamente para essa muta\u00e7\u00e3o. Quando chegar a hora de consultar esses mesmos dados, essas sequ\u00eancias de muta\u00e7\u00e3o poder\u00e3o ser passadas como par\u00e2metro para o n\u00f3 de consulta. Embora isso pare\u00e7a complicado, na verdade n\u00e3o \u00e9 - n\u00f3s fornecemos abstra\u00e7\u00f5es muito f\u00e1ceis de usar na forma de tokens de muta\u00e7\u00e3o para lidar com o trabalho pesado para voc\u00ea. Para que o AT_PLUS funcione, os tokens de muta\u00e7\u00e3o devem ser ativados na inst\u00e2ncia do Bucket e os MutationTokens reais (encontrados nos documentos retornados como resultado das opera\u00e7\u00f5es de muta\u00e7\u00e3o) s\u00e3o passados para o objeto N1QL Query. Para que o SDK inclua um MutationToken no documento retornado ap\u00f3s uma muta\u00e7\u00e3o, o recurso deve primeiro ser negociado com o servidor. Ele est\u00e1 dispon\u00edvel desde o Couchbase Server 4.0 e pode ser ativado no CouchbaseEnvironment do SDK.  Em java, isso se parece com:<\/p>\n<div>\n<pre><code class=\"language-java\">CouchbaseEnvironment env = DefaultCouchbaseEnvironment.builder()    \r\n   .mutationTokensEnabled(true) \r\n   \/\/other tuning goes here \r\n   .build(); \r\n   Cluster cluster = CouchbaseCluster.create(env, \"127.0.0.1\"); <\/code><\/pre>\n<\/div>\n<p>Uma vez feito isso, o documento retornado de cada opera\u00e7\u00e3o de muta\u00e7\u00e3o de chave\/valor que voc\u00ea executar tamb\u00e9m conter\u00e1 um MutationToken. \u00c9 importante observar que o objeto Document retornado \u00e9 diferente daquele passado como argumento. Voc\u00ea deve usar esse valor de retorno para obter a consist\u00eancia AT_PLUS, passando-o para o m\u00e9todo consistentWith() do construtor N1qlParams. Os par\u00e2metros podem ent\u00e3o ser passados para o pr\u00f3prio construtor N1qlQuery, como neste exemplo java:<\/p>\n<div>\n<pre><code class=\"language-java\">JsonDocument originalDoc = JsonDocument.create(\"key\"); \r\n  JsonDocument docWithToken = bucket.upsert(originalDoc); \r\n    \r\n  \/\/don't use originalDoc (it won't have a token), use docWithToken! \r\n  N1qlParams atPlus = N1qlParams.build().consistentWith(docWithToken); \r\n  N1qlQuery query = N1qlQuery.simple(\"SELECT * FROM default WHERE updatedCriteria = 1\", atPlus); <\/code><\/pre>\n<\/div>\n<p>Isso \u00e9 incrivelmente eficiente. Voc\u00ea pode especificar para o indexador as muta\u00e7\u00f5es exatas com as quais deseja que seu \u00edndice seja consistente. Vejamos a mesma arquitetura do exemplo \"request plus\". Se os documentos que procuramos estivessem todos localizados em parti\u00e7\u00f5es no n\u00f3 1 usando \"at plus\", o cen\u00e1rio seria muito diferente:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/may\/high-performance-consistency\/at_plus.png\" \/><\/p>\n<p>Por meio de nosso benchmarking interno de desempenho, o uso do \"at plus\" pode resultar em uma melhoria de 10 vezes ou mais na lat\u00eancia m\u00e9dia, al\u00e9m de reduzir drasticamente o uso da CPU\/mem\u00f3ria em todo o cluster.<\/p>\n<h2>Pr\u00f3ximas etapas<\/h2>\n<p>Uma \u00f3tima maneira de experimentar esse recurso, al\u00e9m de v\u00e1rios outros novos recursos, \u00e9 experimentar o Couchbase 4.5. Ele pode ser baixado gratuitamente em nosso site <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/nosql-databases\/downloads\/\">p\u00e1gina de downloads<\/a>. Uma vis\u00e3o geral abrangente do que est\u00e1 inclu\u00eddo nesta vers\u00e3o pode ser encontrada em \"Whats New in Couchbase 4.5\", de Don Pinto <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-4-5-beta\/\">blog<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>High Performance Consistency When using Couchbase as your system of record we provide a best in class indexing experience using our global secondary indexes and workload isolation through dedicated indexing nodes. We&#8217;ve improved that experience even further in Couchbase 4.5 [&hellip;]<\/p>","protected":false},"author":20,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,1812],"tags":[1640,1641],"ppma_author":[9019],"class_list":["post-2247","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-n1ql-query","tag-couchbase-4-5","tag-secondary-indexing"],"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>High Performance NOSQL Query Consistency with Couchbase 4.5 - The Couchbase Blog<\/title>\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\/high-performance-consistency\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"High Performance NOSQL Query Consistency with Couchbase 4.5\" \/>\n<meta property=\"og:description\" content=\"High Performance Consistency When using Couchbase as your system of record we provide a best in class indexing experience using our global secondary indexes and workload isolation through dedicated indexing nodes. We&#8217;ve improved that experience even further in Couchbase 4.5 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/high-performance-consistency\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-05-10T04:57:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-12T09:21:32+00:00\" \/>\n<meta name=\"author\" content=\"Todd Greenstein\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@todd_greenstein\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Todd Greenstein\" \/>\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\/high-performance-consistency\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/\"},\"author\":{\"name\":\"Todd Greenstein\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/64b5d1e5969768c5d63c11c696951ed3\"},\"headline\":\"High Performance NOSQL Query Consistency with Couchbase 4.5\",\"datePublished\":\"2016-05-10T04:57:03+00:00\",\"dateModified\":\"2024-09-12T09:21:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/\"},\"wordCount\":922,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Couchbase 4.5\",\"Secondary Indexing\"],\"articleSection\":[\"Couchbase Server\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/\",\"name\":\"High Performance NOSQL Query Consistency with Couchbase 4.5 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-05-10T04:57:03+00:00\",\"dateModified\":\"2024-09-12T09:21:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"High Performance NOSQL Query Consistency with Couchbase 4.5\"}]},{\"@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\/64b5d1e5969768c5d63c11c696951ed3\",\"name\":\"Todd Greenstein\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/abfbe093983052aa28595343c19888ce\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f230045f7f6e636cf01abbd35f1cbf66a1206fbe149a0d4f0bbdd992c646257d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f230045f7f6e636cf01abbd35f1cbf66a1206fbe149a0d4f0bbdd992c646257d?s=96&d=mm&r=g\",\"caption\":\"Todd Greenstein\"},\"description\":\"Todd Greenstein is a Solution Architect at Couchbase. Todd is specialize in API design, architecture, data modeling, nodejs and golang development.\",\"sameAs\":[\"https:\/\/x.com\/todd_greenstein\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/todd-greenstein\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"High Performance NOSQL Query Consistency with Couchbase 4.5 - The Couchbase Blog","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\/high-performance-consistency\/","og_locale":"pt_BR","og_type":"article","og_title":"High Performance NOSQL Query Consistency with Couchbase 4.5","og_description":"High Performance Consistency When using Couchbase as your system of record we provide a best in class indexing experience using our global secondary indexes and workload isolation through dedicated indexing nodes. We&#8217;ve improved that experience even further in Couchbase 4.5 [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/high-performance-consistency\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-05-10T04:57:03+00:00","article_modified_time":"2024-09-12T09:21:32+00:00","author":"Todd Greenstein","twitter_card":"summary_large_image","twitter_creator":"@todd_greenstein","twitter_misc":{"Written by":"Todd Greenstein","Est. reading time":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/"},"author":{"name":"Todd Greenstein","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/64b5d1e5969768c5d63c11c696951ed3"},"headline":"High Performance NOSQL Query Consistency with Couchbase 4.5","datePublished":"2016-05-10T04:57:03+00:00","dateModified":"2024-09-12T09:21:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/"},"wordCount":922,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Couchbase 4.5","Secondary Indexing"],"articleSection":["Couchbase Server","SQL++ \/ N1QL Query"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/","url":"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/","name":"High Performance NOSQL Query Consistency with Couchbase 4.5 - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-05-10T04:57:03+00:00","dateModified":"2024-09-12T09:21:32+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/high-performance-consistency\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"High Performance NOSQL Query Consistency with Couchbase 4.5"}]},{"@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\/64b5d1e5969768c5d63c11c696951ed3","name":"Todd Greenstein","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/abfbe093983052aa28595343c19888ce","url":"https:\/\/secure.gravatar.com\/avatar\/f230045f7f6e636cf01abbd35f1cbf66a1206fbe149a0d4f0bbdd992c646257d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f230045f7f6e636cf01abbd35f1cbf66a1206fbe149a0d4f0bbdd992c646257d?s=96&d=mm&r=g","caption":"Todd Greenstein"},"description":"Todd Greenstein is a Solution Architect at Couchbase. Todd is specialize in API design, architecture, data modeling, nodejs and golang development.","sameAs":["https:\/\/x.com\/todd_greenstein"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/todd-greenstein\/"}]}},"authors":[{"term_id":9019,"user_id":20,"is_guest":0,"slug":"todd-greenstein","display_name":"Todd Greenstein","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/f230045f7f6e636cf01abbd35f1cbf66a1206fbe149a0d4f0bbdd992c646257d?s=96&d=mm&r=g","author_category":"","last_name":"Greenstein","first_name":"Todd","job_title":"","user_url":"","description":"Todd Greenstein \u00e9 arquiteto de solu\u00e7\u00f5es na Couchbase. Todd \u00e9 especializado em design de API, arquitetura, modelagem de dados, desenvolvimento em nodejs e golang."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2247","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\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2247"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2247\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=2247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2247"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}