{"id":1528,"date":"2014-12-16T19:21:32","date_gmt":"2014-12-16T19:21:31","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1528"},"modified":"2023-06-28T00:41:46","modified_gmt":"2023-06-28T07:41:46","slug":"compaction-magic-couchbase-server-20","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/compaction-magic-couchbase-server-20\/","title":{"rendered":"Magia de compacta\u00e7\u00e3o no Couchbase Server 2.0"},"content":{"rendered":"<p><span style=\"font-size: 16px;line-height: 1.5\">Com o <\/span><a style=\"font-size: 16px;line-height: 1.5\" href=\"https:\/\/damienkatz.net\/2012\/05\/stabilizing_couchbase_server_2.html\">design de armazenamento somente para anexos<\/a><span style=\"font-size: 16px;line-height: 1.5\">\u00c9 imposs\u00edvel corromper os dados e os arquivos de \u00edndice, pois as atualiza\u00e7\u00f5es v\u00e3o apenas at\u00e9 o final do arquivo. N\u00e3o h\u00e1 atualiza\u00e7\u00f5es de arquivos no local e os arquivos nunca ficam em um estado inconsistente. Mas a grava\u00e7\u00e3o em um arquivo em constante expans\u00e3o acabar\u00e1 consumindo todo o seu espa\u00e7o em disco. Portanto, o servidor Couchbase tem um processo chamado compacta\u00e7\u00e3o. A compacta\u00e7\u00e3o limpa o espa\u00e7o em disco removendo dados obsoletos e valores de \u00edndice para que os arquivos de dados e de \u00edndice n\u00e3o consumam desnecessariamente o espa\u00e7o em disco.  Se o caso de uso do seu aplicativo for principalmente de leitura, talvez n\u00e3o haja problema, mas se voc\u00ea tiver cargas de trabalho de grava\u00e7\u00e3o pesada, talvez queira saber como a compacta\u00e7\u00e3o autom\u00e1tica funciona no Couchbase Server.\u00a0<\/span><\/p>\n<div><\/div>\n<div>Por padr\u00e3o, os documentos no Couchbase Server s\u00e3o particionados em vBuckets (ou parti\u00e7\u00f5es). H\u00e1 v\u00e1rios arquivos usados para armazenamento - um arquivo de dados por parti\u00e7\u00e3o (os \"arquivos de dados\"), v\u00e1rios arquivos de \u00edndice (ativo, r\u00e9plica e tempor\u00e1rio) por documento de design e um arquivo mestre que tem metadados relacionados aos documentos de design e \u00e0s defini\u00e7\u00f5es de visualiza\u00e7\u00e3o. Por exemplo, no Mac OSX (conforme mostrado abaixo), o bucket de amostra \"gamesim\" tem <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/docs\/couchbase-manual-2.0\/couchbase-getting-started-prepare-platforms.html\/\">64 arquivos de dados individuais<\/a>um por parti\u00e7\u00e3o (0.couch.1 a 63.couch.1) e um arquivo mestre que cont\u00e9m documentos de design e outros metadados de visualiza\u00e7\u00e3o (master.couch.1)<\/div>\n<div><\/div>\n<p class=\"rtecenter\"><b style=\"color: #000000;font-family: Times;font-size: medium;line-height: normal;font-weight: normal\"><span style=\"font-size: 16px;font-family: Calibri;background-color: transparent;font-style: normal\"><img decoding=\"async\" style=\"width: 602px;height: 378px\" src=\"https:\/\/www.couchbase.com\/blog\/sites\/default\/files\/uploads\/all\/images\/Screen%20Shot%202013-02-18%20at%2012.28.24%20PM.png\" alt=\"\" \/> \u00a0<\/span><\/b><\/p>\n<p class=\"rtecenter\"><b id=\"internal-source-marker_0.5445088392589241\" style=\"font-size: medium;font-style: inherit;color: #000000;font-family: Times;line-height: normal;font-weight: normal\"><span style=\"font-size: 16px;font-family: Calibri;background-color: transparent;font-weight: bold;font-style: normal\">Dados e arquivo mestre do Couchbase<\/span><\/b><\/p>\n<p><span style=\"font-size: 16px;line-height: 1.5\">Os arquivos de \u00edndice est\u00e3o na pasta @indexes e consistem no arquivo de \u00edndice ativo que come\u00e7a com main_, no arquivo de \u00edndice de r\u00e9plica (se a replica\u00e7\u00e3o de \u00edndice estiver ativada) que come\u00e7a com replica_ e em um arquivo tempor\u00e1rio que \u00e9 usado durante a cria\u00e7\u00e3o e a atualiza\u00e7\u00e3o do \u00edndice que come\u00e7a com tmp_.<\/span><\/p>\n<div><\/div>\n<p class=\"rtecenter\"><img decoding=\"async\" style=\"width: 604px;height: 392px\" src=\"https:\/\/www.couchbase.com\/blog\/sites\/default\/files\/uploads\/all\/images\/Screen%20Shot%202013-02-18%20at%2012.28.37%20PM.png\" alt=\"\" \/><\/p>\n<p class=\"rtecenter\" dir=\"ltr\" style=\"margin-top: 0pt;margin-bottom: 0pt\"><b id=\"internal-source-marker_0.5445088392589241\" style=\"color: #000000;font-family: Times;font-size: medium;line-height: normal;font-weight: normal\"><span style=\"font-size: 16px;font-family: Calibri;background-color: transparent;font-weight: bold;font-style: normal\">Arquivos de \u00edndice no Couchbase Server<\/span><\/b><\/p>\n<p><span style=\"font-size: 16px;line-height: 1.5\">Os arquivos de dados e de \u00edndice no Couchbase Server s\u00e3o organizados como \u00e1rvores b.  Os n\u00f3s raiz (mostrados em vermelho) cont\u00eam ponteiros para os n\u00f3s intermedi\u00e1rios, que cont\u00eam ponteiros para os n\u00f3s folha (mostrados em azul). No caso de arquivos de dados, os n\u00f3s raiz e intermedi\u00e1rios rastreiam os tamanhos dos documentos em sua sub\u00e1rvore.  Os n\u00f3s folha armazenam o ID do documento, os metadados do documento e os ponteiros para o conte\u00fado do documento. No caso de arquivos de \u00edndice, os n\u00f3s raiz e intermedi\u00e1rio rastreiam o resultado da fun\u00e7\u00e3o de mapa de sa\u00edda e os valores de redu\u00e7\u00e3o em sua sub\u00e1rvore.<\/span><\/p>\n<p class=\"rtecenter\"><img decoding=\"async\" style=\"width: 729px;height: 331px\" src=\"https:\/\/www.couchbase.com\/blog\/sites\/default\/files\/uploads\/all\/images\/Screen%20Shot%202013-02-18%20at%2012.28.49%20PM.png\" alt=\"\" \/><\/p>\n<p class=\"rtecenter\" dir=\"ltr\" style=\"margin-top: 0pt;margin-bottom: 0pt\"><b id=\"internal-source-marker_0.5445088392589241\" style=\"color: #000000;font-family: Times;font-size: medium;line-height: normal;font-weight: normal\"><span style=\"font-size: 15px;font-family: Calibri;background-color: transparent;font-weight: bold;font-style: normal\">Armazenamento em \u00e1rvore B para arquivos de dados (mostrado \u00e0 esquerda) e arquivos de \u00edndice (mostrado \u00e0 direita)<\/span><\/b><\/p>\n<div><\/div>\n<p>Todas as muta\u00e7\u00f5es, inclusive inser\u00e7\u00f5es, atualiza\u00e7\u00f5es e exclus\u00f5es, s\u00e3o gravadas no final do arquivo, deixando os dados antigos no lugar. Adicionar um novo documento? A \u00e1rvore B cresce no final. Excluir um documento? Isso \u00e9 registrado no final da \u00e1rvore B. Por exemplo, conforme mostrado na figura abaixo, o documento A sofre uma muta\u00e7\u00e3o, seguida de uma muta\u00e7\u00e3o no documento B e, em seguida, um novo documento D \u00e9 adicionado, seguido de outra muta\u00e7\u00e3o no documento A. Os dados antigos s\u00e3o mostrados pelos n\u00f3s vermelhos riscados na figura abaixo.<\/p>\n<p class=\"rtecenter\"><img decoding=\"async\" style=\"width: 527px;height: 344px\" src=\"https:\/\/www.couchbase.com\/blog\/sites\/default\/files\/uploads\/all\/images\/Screen%20Shot%202013-02-18%20at%2012.28.59%20PM.png\" alt=\"\" \/><\/p>\n<p class=\"rtecenter\"><b id=\"internal-source-marker_0.5445088392589241\" style=\"font-size: medium;font-style: inherit;color: #000000;font-family: Times;line-height: normal;font-weight: normal\"><span style=\"font-size: 15px;font-family: Calibri;background-color: transparent;font-weight: bold;font-style: normal\">Layout de dados l\u00f3gicos para arquivos de dados e de \u00edndice<\/span><\/b><\/p>\n<div>Ao examinar o tamanho dos documentos rastreados pelo n\u00f3 raiz na estrutura de arquivos da \u00e1rvore B, \u00e9 calculada a propor\u00e7\u00e3o entre o tamanho real e o tamanho atual do arquivo. Se essa propor\u00e7\u00e3o atingir um determinado limite configur\u00e1vel, conforme mostrado na Figura abaixo, um processo de compacta\u00e7\u00e3o on-line ser\u00e1 acionado. A compacta\u00e7\u00e3o examina os arquivos de dados e de \u00edndice atuais e cria novos arquivos de dados e de \u00edndice, sem os itens marcados para limpeza. Durante a compacta\u00e7\u00e3o, as \u00e1rvores b s\u00e3o balanceadas e os valores de redu\u00e7\u00e3o s\u00e3o recalculados para a nova \u00e1rvore. Al\u00e9m disso, os dados que n\u00e3o pertencem a um n\u00f3 espec\u00edfico tamb\u00e9m s\u00e3o limpos.<\/div>\n<div><\/div>\n<div>Finalmente, para acompanhar a carga de trabalho ativa que pode ter alterado o arquivo de dados da parti\u00e7\u00e3o antiga durante a compacta\u00e7\u00e3o, o Couchbase copia os dados que foram anexados desde o in\u00edcio do processo de compacta\u00e7\u00e3o para o novo arquivo de dados da parti\u00e7\u00e3o, para que ele fique atualizado. O novo arquivo de \u00edndice tamb\u00e9m \u00e9 atualizado dessa maneira. Os dados da parti\u00e7\u00e3o antiga e o arquivo de \u00edndice s\u00e3o exclu\u00eddos e os novos arquivos de dados e \u00edndice s\u00e3o usados.<\/div>\n<div><\/div>\n<div>Normalmente, a compacta\u00e7\u00e3o \u00e9 uma opera\u00e7\u00e3o do tipo tudo ou nada, mas como <strong>a compacta\u00e7\u00e3o no Couchbase \u00e9 feita por parti\u00e7\u00e3o (vbucket)<\/strong>o conjunto de dados pode ser <strong>compactado de forma incremental<\/strong> sem perder as altera\u00e7\u00f5es feitas quando abortado.<\/div>\n<p class=\"rtecenter\"><img decoding=\"async\" style=\"width: 609px;height: 409px\" src=\"https:\/\/www.couchbase.com\/blog\/sites\/default\/files\/uploads\/all\/images\/Screen%20Shot%202013-02-18%20at%2012.29.09%20PM.png\" alt=\"\" \/><\/p>\n<p class=\"rtecenter\" dir=\"ltr\" style=\"margin-top: 0pt;margin-bottom: 0pt\"><b id=\"internal-source-marker_0.5445088392589241\" style=\"color: #000000;font-family: Times;font-size: medium;line-height: normal;font-weight: normal\"><span style=\"font-size: 15px;font-family: Calibri;background-color: transparent;font-weight: bold;font-style: normal\">Configura\u00e7\u00e3o dos limites de compacta\u00e7\u00e3o na guia UI de configura\u00e7\u00f5es para arquivos de dados e de \u00edndice <\/span><\/b><\/p>\n<div><\/div>\n<div>A compacta\u00e7\u00e3o no Couchbase Server \u00e9 uma <strong>opera\u00e7\u00e3o on-line<\/strong>. Por padr\u00e3o, a compacta\u00e7\u00e3o autom\u00e1tica \u00e9 ativada quando o limite de fragmenta\u00e7\u00e3o atinge 30%, mas voc\u00ea deve testar quais configura\u00e7\u00f5es funcionam bem para sua carga de trabalho e ajustar essa configura\u00e7\u00e3o de acordo.<\/div>\n<p class=\"rtecenter\"><img decoding=\"async\" style=\"width: 622px;height: 124px\" src=\"https:\/\/www.couchbase.com\/blog\/sites\/default\/files\/uploads\/all\/images\/Screen%20Shot%202013-02-18%20at%2012.29.18%20PM.png\" alt=\"\" \/><\/p>\n<div style=\"font-style: normal;font-size: 16px;font-family: ff-meta-serif-web-pro-1, ff-meta-serif-web-pro-2, Georgia, 'Times New Roman', Times, serif\">Porque <strong>a compacta\u00e7\u00e3o \u00e9 um recurso intensivo<\/strong> voc\u00ea tamb\u00e9m pode program\u00e1-la para hor\u00e1rios fora de pico. Para evitar que a compacta\u00e7\u00e3o autom\u00e1tica ocorra quando o banco de dados estiver em uso intenso, voc\u00ea pode configurar um per\u00edodo fora do hor\u00e1rio de pico durante o qual a compacta\u00e7\u00e3o \u00e9 permitida usando a interface do usu\u00e1rio mostrada acima.  Por exemplo, aqui eu configurei a compacta\u00e7\u00e3o para ser executada entre 12h e 1h, hor\u00e1rio do servidor, todos os dias. Se a opera\u00e7\u00e3o de compacta\u00e7\u00e3o n\u00e3o for conclu\u00edda nesse per\u00edodo de tempo, ela continuar\u00e1, mas voc\u00ea pode marcar a caixa para que ela seja abortada.<\/div>\n<div style=\"font-style: normal;font-size: 16px;font-family: ff-meta-serif-web-pro-1, ff-meta-serif-web-pro-2, Georgia, 'Times New Roman', Times, serif\"><\/div>\n<div style=\"font-style: normal;font-size: 16px;font-family: ff-meta-serif-web-pro-1, ff-meta-serif-web-pro-2, Georgia, 'Times New Roman', Times, serif\">A compacta\u00e7\u00e3o tamb\u00e9m pode ser acionada manualmente por ca\u00e7amba ou por documento de projeto, conforme mostrado nas figuras abaixo.<\/div>\n<div style=\"font-style: normal;font-size: 16px;font-family: ff-meta-serif-web-pro-1, ff-meta-serif-web-pro-2, Georgia, 'Times New Roman', Times, serif\"><\/div>\n<p class=\"rtecenter\"><img decoding=\"async\" style=\"width: 618px;height: 371px\" src=\"https:\/\/www.couchbase.com\/blog\/sites\/default\/files\/uploads\/all\/images\/Screen%20Shot%202013-02-18%20at%2012.29.25%20PM.png\" alt=\"\" \/><\/p>\n<p class=\"rtecenter\" dir=\"ltr\" style=\"margin-top: 0pt;margin-bottom: 0pt\"><b id=\"internal-source-marker_0.5445088392589241\" style=\"color: #000000;font-family: Times;font-size: medium;line-height: normal;font-weight: normal\"><span style=\"font-size: 15px;font-family: Calibri;background-color: transparent;font-weight: bold;font-style: normal\">Compacta\u00e7\u00e3o manual de um bucket de dados no Couchbase<\/span><\/b><\/p>\n<div><\/div>\n<p class=\"rtecenter\"><img decoding=\"async\" style=\"width: 598px;height: 263px\" src=\"https:\/\/www.couchbase.com\/blog\/sites\/default\/files\/uploads\/all\/images\/Screen%20Shot%202013-02-18%20at%2012.29.38%20PM.png\" alt=\"\" \/><\/p>\n<p class=\"rtecenter\" dir=\"ltr\" style=\"margin-top: 0pt;margin-bottom: 0pt\"><b id=\"internal-source-marker_0.5445088392589241\" style=\"color: #000000;font-family: Times;font-size: medium;line-height: normal;font-weight: normal\"><span style=\"font-size: 15px;font-family: Calibri;background-color: transparent;font-weight: bold;font-style: normal\">Compacta\u00e7\u00e3o manual de um documento de design no Couchbase<\/span><\/b><\/p>\n<div>\n<div><\/div>\n<div>O desempenho da compacta\u00e7\u00e3o no Couchbase Server depende da capacidade de E\/S e da <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/how-many-nodes-part-1-introduction-sizing-couchbase-server-20-cluster\/\">dimensionamento adequado do cluster<\/a>. Seu cluster deve ser dimensionado adequadamente para que haja capacidade suficiente em todas as v\u00e1rias \u00e1reas para dar suporte a tudo o que o sistema est\u00e1 fazendo para manter o n\u00edvel de desempenho necess\u00e1rio.\u00a0<strong><span style=\"font-size: 16px;line-height: 1.5\">Ent\u00e3o, como voc\u00ea ajusta a compacta\u00e7\u00e3o no Couchbase Server?<\/span><\/strong><\/div>\n<div><\/div>\n<div>N\u00e3o h\u00e1 solu\u00e7\u00e3o m\u00e1gica aqui... Dependendo do requisito de IOPS do seu aplicativo, voc\u00ea precisa dimensionar seu cluster adequadamente e talvez queira testar sua carga de trabalho em uma variedade de hardwares de armazenamento diferentes. Se o seu aplicativo for pesado em termos de grava\u00e7\u00e3o, os SSDs podem ser a melhor op\u00e7\u00e3o, mas para taxas de leitura pesadas, o EBS pode ser uma boa solu\u00e7\u00e3o a um custo baixo.<\/div>\n<div><\/div>\n<div>Por padr\u00e3o, se os \u00edndices de dados e de exibi\u00e7\u00f5es estiverem configurados para compacta\u00e7\u00e3o autom\u00e1tica, a compacta\u00e7\u00e3o funcionar\u00e1 sequencialmente, primeiro no banco de dados e depois nas exibi\u00e7\u00f5es.  Ao ativar a compacta\u00e7\u00e3o paralela, os bancos de dados e as exibi\u00e7\u00f5es podem ser compactados ao mesmo tempo. Isso requer mais CPU e E\/S de disco, mas se o banco de dados e os \u00edndices de visualiza\u00e7\u00e3o estiverem armazenados em diferentes dispositivos de disco f\u00edsico (<a href=\"https:\/\/www.couchbase.com\/blog\/pt\/docs\/couchbase-manual-2.0\/best-practice-guide.html\/\">como \u00e9 nossa melhor pr\u00e1tica de qualquer forma<\/a>), os dois podem ser conclu\u00eddos em paralelo para que os arquivos de \u00edndice e de dados n\u00e3o se tornem extremamente grandes.<\/div>\n<div><\/div>\n<div><strong>Conclus\u00e3o<\/strong><\/div>\n<div><\/div>\n<div>No final das contas, todo banco de dados precisa de manuten\u00e7\u00e3o regular. A compacta\u00e7\u00e3o on-line \u00e9 uma grande vantagem, mas \u00e9 preciso testar o sistema e definir as configura\u00e7\u00f5es de compacta\u00e7\u00e3o adequadamente para que ela n\u00e3o afete a carga do sistema.<\/div>\n<div><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>With Couchbase\u2019s append-only storage design, it\u2019s impossible to corrupt data and index files as updates go only to the end of the file. There are no in-place file updates and the files are never in an inconsistent state. But writing [&hellip;]<\/p>","protected":false},"author":2,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[1247],"ppma_author":[8968],"class_list":["post-1528","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-compaction"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Compaction magic in Couchbase Server 2.0 - 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\/compaction-magic-couchbase-server-20\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Compaction magic in Couchbase Server 2.0\" \/>\n<meta property=\"og:description\" content=\"With Couchbase\u2019s append-only storage design, it\u2019s impossible to corrupt data and index files as updates go only to the end of the file. There are no in-place file updates and the files are never in an inconsistent state. But writing [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/compaction-magic-couchbase-server-20\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-16T19:21:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-28T07:41:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/sites\/default\/files\/uploads\/all\/images\/Screen%20Shot%202013-02-18%20at%2012.28.24%20PM.png\" \/>\n<meta name=\"author\" content=\"The Couchbase Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"The Couchbase Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/\"},\"author\":{\"name\":\"The Couchbase Team\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/764f4a6771ee19bc7af70b70a326fb93\"},\"headline\":\"Compaction magic in Couchbase Server 2.0\",\"datePublished\":\"2014-12-16T19:21:31+00:00\",\"dateModified\":\"2023-06-28T07:41:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/\"},\"wordCount\":1086,\"commentCount\":5,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Compaction\"],\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/\",\"name\":\"Compaction magic in Couchbase Server 2.0 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2014-12-16T19:21:31+00:00\",\"dateModified\":\"2023-06-28T07:41:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/#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\/compaction-magic-couchbase-server-20\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Compaction magic in Couchbase Server 2.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\/764f4a6771ee19bc7af70b70a326fb93\",\"name\":\"The Couchbase Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/7befc37d02226b59499817eafdec60c3\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b4c18c758421903398e84d6c9560f319f39c665798d7d23e6a6f9dff8a8f984e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b4c18c758421903398e84d6c9560f319f39c665798d7d23e6a6f9dff8a8f984e?s=96&d=mm&r=g\",\"caption\":\"The Couchbase Team\"},\"description\":\"Jennifer Garcia is a Senior Web Manager at Couchbase Inc. As the website manager, Jennifer has overall responsibility for the website properties including design, implementation, content, and performance.\",\"sameAs\":[\"https:\/\/www.couchbase.com\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/jennifer-garcia\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"A m\u00e1gica da compacta\u00e7\u00e3o no Couchbase Server 2.0 - 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\/compaction-magic-couchbase-server-20\/","og_locale":"pt_BR","og_type":"article","og_title":"Compaction magic in Couchbase Server 2.0","og_description":"With Couchbase\u2019s append-only storage design, it\u2019s impossible to corrupt data and index files as updates go only to the end of the file. There are no in-place file updates and the files are never in an inconsistent state. But writing [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/compaction-magic-couchbase-server-20\/","og_site_name":"The Couchbase Blog","article_published_time":"2014-12-16T19:21:31+00:00","article_modified_time":"2023-06-28T07:41:46+00:00","og_image":[{"url":"https:\/\/www.couchbase.com\/blog\/sites\/default\/files\/uploads\/all\/images\/Screen%20Shot%202013-02-18%20at%2012.28.24%20PM.png","type":"","width":"","height":""}],"author":"The Couchbase Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"The Couchbase Team","Est. reading time":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/"},"author":{"name":"The Couchbase Team","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/764f4a6771ee19bc7af70b70a326fb93"},"headline":"Compaction magic in Couchbase Server 2.0","datePublished":"2014-12-16T19:21:31+00:00","dateModified":"2023-06-28T07:41:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/"},"wordCount":1086,"commentCount":5,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Compaction"],"articleSection":["Uncategorized"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/","url":"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/","name":"A m\u00e1gica da compacta\u00e7\u00e3o no Couchbase Server 2.0 - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2014-12-16T19:21:31+00:00","dateModified":"2023-06-28T07:41:46+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/compaction-magic-couchbase-server-20\/#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\/compaction-magic-couchbase-server-20\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Compaction magic in Couchbase Server 2.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\/764f4a6771ee19bc7af70b70a326fb93","name":"A equipe do Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/7befc37d02226b59499817eafdec60c3","url":"https:\/\/secure.gravatar.com\/avatar\/b4c18c758421903398e84d6c9560f319f39c665798d7d23e6a6f9dff8a8f984e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b4c18c758421903398e84d6c9560f319f39c665798d7d23e6a6f9dff8a8f984e?s=96&d=mm&r=g","caption":"The Couchbase Team"},"description":"Jennifer Garcia \u00e9 gerente s\u00eanior de Web na Couchbase Inc. Como gerente do site, Jennifer tem a responsabilidade geral pelas propriedades do site, incluindo design, implementa\u00e7\u00e3o, conte\u00fado e desempenho.","sameAs":["https:\/\/www.couchbase.com"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/jennifer-garcia\/"}]}},"authors":[{"term_id":8968,"user_id":2,"is_guest":0,"slug":"jennifer-garcia","display_name":"The Couchbase Team","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/b4c18c758421903398e84d6c9560f319f39c665798d7d23e6a6f9dff8a8f984e?s=96&d=mm&r=g","author_category":"","last_name":"Garcia","first_name":"Jennifer","job_title":"","user_url":"https:\/\/www.couchbase.com","description":"Jennifer Garcia \u00e9 gerente s\u00eanior de Web na Couchbase Inc. Como gerente do site, Jennifer tem a responsabilidade geral pelas propriedades do site, incluindo design, implementa\u00e7\u00e3o, conte\u00fado e desempenho."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1528","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\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=1528"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1528\/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=1528"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=1528"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=1528"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=1528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}