{"id":1533,"date":"2013-12-02T09:00:00","date_gmt":"2013-12-02T08:00:00","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1533"},"modified":"2023-06-28T01:36:13","modified_gmt":"2023-06-28T08:36:13","slug":"couchbase-101-q-and-a","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-101-q-and-a\/","title":{"rendered":"Perguntas e respostas sobre o Couchbase 101"},"content":{"rendered":"<p>Em nossa s\u00e9rie de treinamentos cont\u00ednuos, v\u00e1rias perguntas surgem a cada vez, e eu as relaciono com suas respectivas respostas abaixo!<\/p>\n<p><span style=\"color: #007da4;font-size: 23px;font-weight: 600;line-height: 1.4\">Couchbase 101 - Arquitetura, instala\u00e7\u00e3o e configura\u00e7\u00e3o<\/span><\/p>\n<p class=\"p1\"><span style=\"font-family: inherit;font-size: 1em;line-height: 1.4375em\">Meu gerador de carga baseado em Ruby pode ser baixado aqui:\u00a0<\/span><a style=\"font-family: inherit;font-size: 1em;line-height: 1.4375em\" href=\"https:\/\/github.com\/scalabl3\/ruby-couchbase-loadgen\">https:\/\/github.com\/scalabl3\/ruby-couchbase-loadgen<\/a><\/p>\n<p class=\"p1\"><strong>P: Estamos usando a vers\u00e3o 2.0 na produ\u00e7\u00e3o, qual \u00e9 a melhor pr\u00e1tica para atualizar para a vers\u00e3o 2.2?<\/strong><\/p>\n<p class=\"p1\">R: Voc\u00ea pode atualizar seu cluster de tr\u00eas maneiras diferentes. A primeira \u00e9 a atualiza\u00e7\u00e3o on-line do rebalanceamento de swap e \u00e9 uma \u00f3tima maneira de manter o tempo de atividade do cluster e, ao mesmo tempo, fazer a atualiza\u00e7\u00e3o. Para fazer um rebalanceamento de swap, voc\u00ea adiciona um n\u00famero igual de novos n\u00f3s que executam o Couchbase 2.2 ao tamanho atual do cluster, mas, antes do rebalanceamento, remove os n\u00f3s do Couchbase 2.0. Ao fazer o rebalanceamento, como voc\u00ea est\u00e1 adicionando e removendo o mesmo n\u00famero de n\u00f3s, isso ser\u00e1 o mais eficiente. Leia mais sobre isso aqui:\u00a0<a href=\"https:\/\/docs.couchbase.com\/couchbase-manual-2.0\/#swap-rebalance\">https:\/\/docs.couchbase.com\/couchbase-manual-2.0\/#swap-rebalance<\/a>\u00a0Voc\u00ea tamb\u00e9m pode fazer uma atualiza\u00e7\u00e3o off-line usando o cbbackup\/cbrestore do cluster antigo para o novo, ou pode usar o cbtransfer (mas \u00e9 preciso interromper as opera\u00e7\u00f5es que criam dados antes da transfer\u00eancia!)<\/p>\n<p class=\"p1\"><strong>P: O Couchbase Server \u00e9 gratuito ou s\u00e3o necess\u00e1rias licen\u00e7as?<\/strong><\/p>\n<p class=\"p1\">R: O Couchbase Community \u00e9 gratuito para desenvolvimento e produ\u00e7\u00e3o para qualquer n\u00famero de n\u00f3s. O Couchbase Enterprise \u00e9 gratuito para desenvolvimento, qualquer n\u00famero de n\u00f3s e at\u00e9 2 em produ\u00e7\u00e3o. Mais de 2 n\u00f3s em produ\u00e7\u00e3o requerem licen\u00e7a, mas nosso licenciamento tamb\u00e9m inclui o Enterprise Support!<\/p>\n<p class=\"p1\"><strong>P: Os servidores de aplicativos s\u00e3o dispositivos f\u00edsicos ou podem ser VMs?<\/strong><\/p>\n<p class=\"p1\">R: Os servidores de aplicativos e os servidores do Couchbase podem ser m\u00e1quinas f\u00edsicas ou virtuais.<\/p>\n<p class=\"p1\"><strong>P: O Couchbase pode ser usado como uma alternativa ao Clearquest\/Clearcase ou esse produto \u00e9 usado estritamente para controle de documentos?<\/strong><\/p>\n<p class=\"p1\">R: O Couchbase \u00e9 um armazenamento de dados sobre o qual voc\u00ea cria aplicativos, e o Clearquest\/Clearcase s\u00e3o <strong><em>aplicativos<\/em><\/strong> que s\u00e3o constru\u00eddos em armazenamentos de dados, portanto, a compara\u00e7\u00e3o com o Couchbase n\u00e3o \u00e9 realmente \"igual para igual\".<\/p>\n<p class=\"p1\"><strong style=\"font-family: inherit;font-size: 1em;line-height: 1.4375em\"><span style=\"font-family: inherit;font-size: 1em;line-height: 1.4375em\">P: O Couchbase pode ser monitorado com SNMP? \u00c9 poss\u00edvel integrar o monitoramento do Couchbase ao Solarwinds?<\/span><\/strong><\/p>\n<p class=\"p1\">R: Voc\u00ea pode usar o SNMP para monitorar o pr\u00f3prio servidor como qualquer outra m\u00e1quina, mas o Couchbase em si n\u00e3o tem integra\u00e7\u00e3o com SNMP at\u00e9 o momento. At\u00e9 onde sei, n\u00e3o tenho conhecimento de uma integra\u00e7\u00e3o padr\u00e3o pronta para uso com o Solarwinds, mas imagino que n\u00e3o seria dif\u00edcil se voc\u00ea pudesse estender o Solarwinds para sondar http\/JSON para obter informa\u00e7\u00f5es e ter acionadores personalizados.<\/p>\n<p class=\"p1\"><strong>P: O couchbase suporta failover para um n\u00f3 do couchbase em espera? Como os dados armazenados ser\u00e3o sincronizados com um cluster do couchbase em espera?<\/strong><\/p>\n<p class=\"p1\">R: N\u00e3o temos um failover autom\u00e1tico para um n\u00f3 de espera, principalmente porque o failover envolve a promo\u00e7\u00e3o de parti\u00e7\u00f5es de r\u00e9plica para parti\u00e7\u00f5es ativas. Se voc\u00ea usasse um n\u00f3 de espera, teria de ter uma c\u00f3pia de todos os dados do cluster nele, pois n\u00e3o sabe qual n\u00f3 (e quais parti\u00e7\u00f5es) ficar\u00e1 inacess\u00edvel\/falhar\u00e1.  Em vez disso, temos parti\u00e7\u00f5es de r\u00e9plica e, no caso de uma falha, o failover promover\u00e1 as parti\u00e7\u00f5es de r\u00e9plica para que fiquem ativas. Se estiver mantendo um cluster separado inteiro em standby (e usando o XDCR (Cross Data Center Replication) para replicar os dados do cluster ativo para ele), ser\u00e1 necess\u00e1rio criar um script de sua pr\u00f3pria l\u00f3gica para decidir quando trocar os clusters.<\/p>\n<p class=\"p1\"><strong>P: Os valores de metadados (ou seja, ids) podem ser automatizados pelo sistema CB (ou seja, contagem autom\u00e1tica de ids) ou ele transfere essa responsabilidade para o aplicativo?<\/strong><\/p>\n<p class=\"p1\">R: Todos os IDs (chaves) s\u00e3o de responsabilidade do aplicativo, n\u00e3o h\u00e1 mecanismos incorporados no Couchbase para gerar IDs. No entanto, voc\u00ea pode usar Atomic Counters para agir como colunas IDENTITY em RDBMSs. Confira o webinar Couchbase 103 para obter mais informa\u00e7\u00f5es sobre alguns padr\u00f5es.<\/p>\n<p class=\"p1\"><strong>P: Podemos armazenar mp3 ou qualquer arquivo de \u00e1udio ou v\u00eddeo no Couchbase?<\/strong><\/p>\n<p class=\"p1\">R: \u00c9 claro que voc\u00ea pode armazenar qualquer coisa no Couchbase, tipos de dados simples, JSON e dados bin\u00e1rios de qualquer tipo (MP3, JPEG, PNG etc.). Voc\u00ea est\u00e1 limitado apenas por um limite de 20 MB por \"documento\". No entanto, os arquivos de v\u00eddeo tendem a ser muito grandes e, nesse caso, seria melhor usar um sistema CDN projetado para arquivos grandes e transmiti-los para grandes p\u00fablicos e armazenar os metadados de ativos do arquivo (como t\u00edtulo, URL para transmiti-lo etc.) no Couchbase.<\/p>\n<p class=\"p1\"><strong>P: Qual \u00e9 a quantidade de RAM que devemos deixar para o sistema operacional?<\/strong><\/p>\n<p class=\"p1\">R: Depende, se voc\u00ea estiver usando muito as visualiza\u00e7\u00f5es, seria prudente alocar mais RAM para o cache do sistema de arquivos. Em geral, recomendamos deixar cerca de 40% de RAM dispon\u00edvel para o sistema operacional (portanto, configure o Couchbase para usar 60%) e isso proporciona um bom desempenho geral. Se voc\u00ea n\u00e3o estiver usando visualiza\u00e7\u00f5es, poder\u00e1 alocar mais RAM para o Couchbase. Talvez seja bom consultar as diretrizes de dimensionamento nesta postagem do blog:\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/pt\/how-many-nodes-part-1-introduction-sizing-couchbase-server-20-cluster\/\">https:\/\/www.couchbase.com\/blog\/how-many-nodes-part-1-introduction-sizing-couchbase-server-20-cluster<\/a><\/p>\n<p class=\"p1\"><strong>P: O que \u00e9 um n\u00famero alto de OPS em um sistema de 16 GB e 4 n\u00facleos?<\/strong><\/p>\n<p class=\"p1\">R: Outro \"depende\", ser\u00e1 fortemente influenciado pela velocidade da rede e pela capacidade de enviar opera\u00e7\u00f5es bin\u00e1rias pelo fio para o Couchbase. Uma caixa de 16 GB com 4 n\u00facleos no Amazon AWS n\u00e3o ser\u00e1 a mesma coisa que uma caixa f\u00edsica conectada ao(s) gerador(es) de carga com 10 GIGE. Voc\u00ea n\u00e3o ver\u00e1 esse tipo de desempenho,\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/pt\/understanding-performance-benchmark-published-cisco-and-solarflare-using-couchbase-server\/\">https:\/\/www.couchbase.com\/blog\/understanding-performance-benchmark-published-cisco-and-solarflare-using-couchbase-server<\/a>\u00a0no AWS! Mas isso mostra que n\u00e3o \u00e9 realmente o Couchbase em si que est\u00e1 limitando as opera\u00e7\u00f5es, mas sim a rede e a capacidade de fornecer opera\u00e7\u00f5es ao Couchbase por meio de soquetes bin\u00e1rios.<\/p>\n<p class=\"p1\"><strong>P: Quantas r\u00e9plicas voc\u00eas recomendam?<\/strong><\/p>\n<p class=\"p1\">R: Em geral, a maioria das pessoas se sente confort\u00e1vel com apenas uma r\u00e9plica, mas h\u00e1 algumas que desejam a seguran\u00e7a de duas r\u00e9plicas; n\u00e3o conhe\u00e7o nenhum cliente que use tr\u00eas r\u00e9plicas. \u00c9 claro que voc\u00ea precisa refor\u00e7ar seus servidores para ter mais r\u00e9plicas com mais RAM alocada e, possivelmente, CPU tamb\u00e9m, se for indexar as r\u00e9plicas. Em \u00faltima an\u00e1lise, essa decis\u00e3o deve ser sua, pois voc\u00ea est\u00e1 mais ciente dos dados e da import\u00e2ncia de proteg\u00ea-los contra qualquer perda de dados, etc.<\/p>\n<p class=\"p1\"><strong>P: Para conex\u00f5es de cliente sdk, precisamos adicionar todos os ips do servidor manualmente?<\/strong><\/p>\n<p class=\"p1\">R: H\u00e1 v\u00e1rias maneiras de lidar com isso, por meio do DNS, por exemplo, onde voc\u00ea faz com que os servidores de aplicativos sempre se conectem a um registro CNAME ou A e liste todas as m\u00e1quinas do cluster (ou registre-as automaticamente) com o registro A. Ou voc\u00ea pode colocar os IPs em um arquivo de configura\u00e7\u00e3o que \u00e9 atualizado em todos os servidores (ou localizado centralmente), ou digitar os IPs no c\u00f3digo de inicializa\u00e7\u00e3o do aplicativo, etc.<\/p>\n<p class=\"p1\"><strong>P: Com rela\u00e7\u00e3o ao sistema operacional, ele est\u00e1 dispon\u00edvel para o Ubuntu. H\u00e1 algum problema se voc\u00ea usar outra distribui\u00e7\u00e3o, como o Debian?<\/strong><\/p>\n<p class=\"p1\">R: Acredito que isso seja poss\u00edvel, mas n\u00e3o experimentei. Os sistemas operacionais listados na p\u00e1gina de download tamb\u00e9m s\u00e3o os mais testados. Sei que um de nossos engenheiros fez o Couchbase funcionar no Joyent SmartOS, mas n\u00e3o \u00e9 um download oficial, etc.<\/p>\n<p class=\"p1\"><strong>P: Os metadados n\u00e3o s\u00e3o mantidos?<\/strong><\/p>\n<p class=\"p1\">R: Os metadados tamb\u00e9m s\u00e3o mantidos no disco, \u00e9 claro, mas tamb\u00e9m s\u00e3o <strong><em>sempre mantido na RAM tamb\u00e9m<\/em><\/strong>. Os documentos ficar\u00e3o na RAM se houver RAM suficiente dispon\u00edvel no bucket (em todo o cluster) para conter os valores. Caso contr\u00e1rio, o Not Recently Used (NRU) \u00e9 usado para ejetar o documento <strong><em>valores<\/em><\/strong> para o disco.<\/p>\n<p class=\"p1\"><strong>P: Qual \u00e9 a utilidade dos trabalhadores de IO? Por que ele \u00e9 dividido quando adicionamos novos n\u00f3s?<\/strong><\/p>\n<p class=\"p1\">R: Os operadores de E\/S s\u00e3o usados para ler\/gravar do disco. Voc\u00ea pode aumentar o n\u00famero de threads (operadores) na configura\u00e7\u00e3o do seu bucket, dependendo da sua capacidade de fazer isso (se voc\u00ea s\u00f3 puder lidar com 4 operadores, configur\u00e1-lo para 8 n\u00e3o alterar\u00e1 o desempenho). Quando voc\u00ea adiciona mais n\u00f3s ao cluster, aumenta seus workers de E\/S linearmente, com cada novo n\u00f3 adicionando a mesma quantidade de workers de E\/S (para sua pr\u00f3pria E\/S). Eles n\u00e3o s\u00e3o \"divididos\", s\u00e3o alocados por n\u00f3.<\/p>\n<p class=\"p1\"><strong>P: Voc\u00ea disse: \"A marca d'\u00e1gua alta mudou recentemente de 80% para 90%\"?\u00a0<span style=\"font-family: inherit;font-size: 1em;line-height: 1.4375em\">E quanto \u00e0 marca d'\u00e1gua baixa, ela continua sendo 60% ou mudou?<\/span><\/strong><\/p>\n<p class=\"p1\">R: Na verdade, esses s\u00e3o par\u00e2metros configur\u00e1veis; as configura\u00e7\u00f5es padr\u00e3o s\u00e3o aproximadamente 80% para marca d'\u00e1gua baixa e 90% para marca d'\u00e1gua alta. Na marca d'\u00e1gua baixa, a eje\u00e7\u00e3o dos dados da parti\u00e7\u00e3o de r\u00e9plica da RAM come\u00e7ar\u00e1 e, na marca d'\u00e1gua alta, ocorrer\u00e1 a eje\u00e7\u00e3o dos dados da parti\u00e7\u00e3o ativa da RAM. Esses tamb\u00e9m s\u00e3o par\u00e2metros configur\u00e1veis no n\u00edvel do bucket, consulte: https:\/\/docs.couchbase.com\/couchbase-manual-2.2\/#changing-thresholds-for-ejection<\/p>\n<p class=\"p1\"><strong>P: Como posso excluir um bucket de dados?<\/strong><\/p>\n<p class=\"p1\">R: Na interface de administra\u00e7\u00e3o, voc\u00ea pode excluir um compartimento clicando em Compartimentos de dados na navega\u00e7\u00e3o superior, clicando no tri\u00e2ngulo ao lado do nome do compartimento para expandir, clicando no bot\u00e3o Editar no lado direito e, na parte inferior da caixa de di\u00e1logo modal que aparece, h\u00e1 um bot\u00e3o Excluir. Voc\u00ea tamb\u00e9m pode excluir os compartimentos de forma program\u00e1tica nos SDKs.<\/p>\n<p class=\"p1\"><strong>P: Qual \u00e9 a rela\u00e7\u00e3o entre o Couchbase e o Apache CouchDB?<\/strong><\/p>\n<p class=\"p1\">R: Os fundadores do CouchDB (Damien Miller e JChris Anderson) deixaram o projeto Apache CouchDB e se juntaram\/fizeram uma fus\u00e3o com a NorthScale\/Membase como fundadores do Couchbase, juntamente com Steve Yen e Dustin Sallings (da Northscale\/Membase). H\u00e1 muitas semelhan\u00e7as no estilo Views Map-Reduce e na sintaxe de consulta que ser\u00e3o familiares aos usu\u00e1rios do CouchDB; no entanto, h\u00e1 tamb\u00e9m muitas diferen\u00e7as importantes. O Couchbase \u00e9 uma empresa de c\u00f3digo aberto independente e com fins lucrativos, com sua pr\u00f3pria base de c\u00f3digo independente que n\u00e3o est\u00e1 vinculada ao CouchDB de forma alguma. As opera\u00e7\u00f5es CRUD bin\u00e1rias, no entanto, se assemelham mais ao memcached\/membase do que a qualquer coisa relacionada ao CouchDB. Eles certamente poderiam ter escolhido um nome menos confuso...<\/p>\n<p class=\"p1\"><strong>P: Como a arquitetura lida com parti\u00e7\u00f5es fora de equil\u00edbrio?<\/strong><\/p>\n<p class=\"p1\">R: Na verdade, nossa estrat\u00e9gia de hashing e parti\u00e7\u00e3o tem se mostrado muito bem distribu\u00edda ao longo de muitos anos, e \u00e9 por isso que ainda a usamos.<\/p>\n<p class=\"p1\"><strong>Q:\u00a0<span style=\"font-family: inherit;font-size: 1em;line-height: 1.4375em\">Como s\u00e3o tratadas as falhas de n\u00f3s?<\/span><\/strong><\/p>\n<p class=\"p1\">R: H\u00e1 duas maneiras de lidar com falhas de n\u00f3s: a primeira \u00e9 ativando o failover autom\u00e1tico. No failover autom\u00e1tico, se um n\u00f3 ficar inacess\u00edvel por 30 segundos, esse n\u00f3 sofrer\u00e1 failover automaticamente e as r\u00e9plicas ser\u00e3o promovidas a ativas. A alternativa \u00e9 fazer o failover manual de um n\u00f3 (ou program\u00e1-lo para ser autom\u00e1tico, mas com base em sua pr\u00f3pria solu\u00e7\u00e3o de monitoramento), o que pode lhe dar a flexibilidade de decidir todos os par\u00e2metros e o tempo para os failovers de n\u00f3s.<\/p>\n<p class=\"p1\"><strong><span style=\"font-family: inherit;font-size: 1em;line-height: 1.4375em\">P: Tentei instalar o servidor couchbase enterprise2.2.0 no fedora17, mas obtive falhas para libcrypto.so e libssl.so. Como fa\u00e7o para corrigir isso?<\/span><\/strong><\/p>\n<p class=\"p1\"><span style=\"font-family: inherit;font-size: 1em;line-height: 1.4375em\">R: Sim, devido a uma depend\u00eancia do erlang na biblioteca principal do erlang, voc\u00ea precisa instalar o openssl098e pelo yum<\/span><\/p>\n<p class=\"p1\"><strong><span style=\"font-family: inherit;font-size: 1em;line-height: 1.4375em\">P: O que significa acid para o Couchbase?<\/span><\/strong><\/p>\n<p class=\"p1\">R: O Couchbase oferece suporte a \"transa\u00e7\u00f5es\" ACID em um n\u00edvel por documento. Voc\u00ea pode usar CAS (Check and Set\/Compare and Swap) para uma concorr\u00eancia otimista ou usar GetAndLock para realmente bloquear um documento para cen\u00e1rios de concorr\u00eancia pessimista. Em geral, as transa\u00e7\u00f5es s\u00e3o muito mais necess\u00e1rias em armazenamentos de dados RDBMS normalizados. O motivo \u00e9 que, devido \u00e0 normaliza\u00e7\u00e3o, as estruturas de dados costumam ser divididas em muitas tabelas diferentes e, sem as transa\u00e7\u00f5es, a integridade dos dados entra em colapso rapidamente. Em cen\u00e1rios NoSQL como o Couchbase, como os dados s\u00e3o muito menos normalizados, as transa\u00e7\u00f5es geralmente s\u00e3o menos necess\u00e1rias do que no mundo RDBMS. Usando o modelo de simultaneidade, voc\u00ea pode criar transa\u00e7\u00f5es. Tamb\u00e9m temos opera\u00e7\u00f5es de durabilidade em que voc\u00ea pode garantir que os dados tenham chegado a uma r\u00e9plica e\/ou ao disco.<\/p>\n<p class=\"p1\"><strong>P: Se um dos n\u00f3s do cluster ficar inativo, como o mapa no servidor de aplicativos do cliente ser\u00e1 atualizado e os dados nesse n\u00f3 ser\u00e3o atualizados?<\/strong><\/p>\n<p class=\"p1\">R: Quando um failover \u00e9 acionado (autom\u00e1tica ou manualmente), isso promove as parti\u00e7\u00f5es de r\u00e9plica para ativas. Se um n\u00f3 receber uma opera\u00e7\u00e3o CRUD para um n\u00famero de parti\u00e7\u00e3o que ele n\u00e3o possui, ele retornar\u00e1 um erro \"Not My VBucket\" para o cliente sdk, que sabe como lidar com isso. Esse erro indica que o mapa do cluster est\u00e1 desatualizado ou fora de sincronia e solicita automaticamente um novo mapa a partir da conex\u00e3o HTTP persistente. H\u00e1 apenas dois cen\u00e1rios em que um mapa de cluster \u00e9 alterado, em rebalanceamentos e failovers. Portanto, esses s\u00e3o os momentos em que a topologia muda e o mapa do cluster \u00e9 alterado, e o cliente ver\u00e1 isso na primeira opera\u00e7\u00e3o que retorna o erro \"Not My VBucket\".<\/p>\n<p class=\"p1\"><strong>P: H\u00e1 um limite de 20 GB no disco r\u00edgido de cada servidor?<\/strong><\/p>\n<p class=\"p1\">R: N\u00e3o h\u00e1 limite de armazenamento, o que voc\u00ea pode ter entendido errado \u00e9 que h\u00e1 um limite de 20 MB por valor de documento no Couchbase.<\/p>\n<p class=\"p1\"><strong>P: O append only disk writes \u00e9 semelhante ao journaling e ao que o sistema de arquivos do sistema operacional usa?<\/strong><\/p>\n<p class=\"p1\">R: Sim, \u00e9 uma estrat\u00e9gia semelhante, mas em nosso pr\u00f3prio formato.<\/p>\n<p class=\"p1\"><strong>P: Existe uma maneira de monitorar o tamanho do disco livre? Ele enviar\u00e1 uma notifica\u00e7\u00e3o por pager ou e-mail quando atingir os limites (por exemplo, 80% cheio)? O mesmo caso para o uso de CPU\/MEM?<\/strong><\/p>\n<p class=\"p1\">R: N\u00e3o temos esse tipo de sistema de notifica\u00e7\u00e3o incorporado, mas \u00e9 certamente trivial integrar seu pr\u00f3prio sistema para fazer isso. Eles s\u00e3o mais parecidos com o monitoramento de VMs\/computadores do que com os espec\u00edficos do Couchbase, mas voc\u00ea poderia facilmente criar uma integra\u00e7\u00e3o para seus pr\u00f3prios par\u00e2metros personalizados. Todas as informa\u00e7\u00f5es nos gr\u00e1ficos do console de administra\u00e7\u00e3o est\u00e3o dispon\u00edveis como JSON com solicita\u00e7\u00f5es http.<\/p>\n<p class=\"p1\"><strong>Q:\u00a0<span style=\"font-family: inherit;font-size: 1em;line-height: 1.4375em\">O que \u00e9 um balde?<\/span><\/strong><\/p>\n<p class=\"p1\">R: Um bucket \u00e9 um \"banco de dados\", uma cole\u00e7\u00e3o de dados. Ele tamb\u00e9m \u00e9 um espa\u00e7o de nomes para os dados, portanto, todas as chaves precisam ser exclusivas em um bucket. Ele tamb\u00e9m funciona como um espa\u00e7o de nomes para visualiza\u00e7\u00f5es; os documentos de design e as visualiza\u00e7\u00f5es s\u00f3 podem acessar os dados dentro do bucket em que est\u00e3o definidos.<\/p>\n<p class=\"p1\"><strong>P: No caso de haver v\u00e1rios servidores couchbase e v\u00e1rios servidores de aplicativos, todos os servidores de aplicativos podem se conectar ao mesmo servidor couchbase (mesmo endere\u00e7o IP)? Nesse caso, o balanceamento de carga \u00e9 feito automaticamente pelo couchbase ou \u00e9 melhor distribuir as conex\u00f5es entre os servidores de aplicativos?<\/strong><\/p>\n<p class=\"p1\">R: \u00d3tima pergunta, \u00e9 importante N\u00c3O colocar um balanceador de carga entre os servidores de aplicativos e o Couchbase. Devido ao particionamento de chave-hash, os dados j\u00e1 est\u00e3o automaticamente distribu\u00eddos pelo cluster do Couchbase. Os servidores de aplicativos se conectar\u00e3o e interagir\u00e3o com os n\u00f3s do cluster do Couchbase diretamente e, devido ao particionamento, j\u00e1 estar\u00e3o \"balanceados\" no sentido de que far\u00e3o opera\u00e7\u00f5es CRUD em todo o cluster com base no hashing das chaves. Os servidores de aplicativos e os clientes sdk manter\u00e3o conex\u00f5es abertas com cada n\u00f3 no cluster do Couchbase e, em geral, uma \u00fanica conex\u00e3o compartilhada \u00e9 tudo o que \u00e9 necess\u00e1rio para cada servidor de aplicativos.<\/p>\n<p class=\"p1\"><strong>P: O que acontece quando um documento est\u00e1 sendo acessado por aplicativos clientes enquanto o rebalanceamento desse documento que cont\u00e9m o bucket est\u00e1 em andamento?<\/strong><\/p>\n<p class=\"p1\">R: Todas as opera\u00e7\u00f5es continuam normalmente durante o rebalanceamento, e as opera\u00e7\u00f5es normais s\u00e3o priorizadas em rela\u00e7\u00e3o ao rebalanceamento. Isso significa que o rebalanceamento continuar\u00e1 enquanto voc\u00ea estiver realizando opera\u00e7\u00f5es. \u00c9 claro que, de modo geral, \u00e9 melhor n\u00e3o iniciar um rebalanceamento durante o pico de uso! No entanto, depende do tipo de n\u00edvel de uso e da configura\u00e7\u00e3o se isso pode causar lentid\u00e3o ou n\u00e3o. Na maioria dos casos, isso n\u00e3o \u00e9 percept\u00edvel.<\/p>\n<p class=\"p1\"><strong>P: Qual \u00e9 o tipo de BLOB semelhante no Couchbase?<\/strong><\/p>\n<p class=\"p1\">R: Voc\u00ea pode armazenar dados bin\u00e1rios diretamente como um valor usando o SDK. Como n\u00e3o temos um esquema definido ou imposto, n\u00e3o \u00e9 necess\u00e1rio especificar que se trata de um BLOB. O BLOB \u00e9 simplesmente o valor do \"documento\".<\/p>\n<p class=\"p1\"><strong>P: Quando executo uma opera\u00e7\u00e3o de configura\u00e7\u00e3o, o documento vai primeiro para a RAM e, em seguida, \u00e9 enviado para a fila de grava\u00e7\u00e3o em disco e para a fila de replica\u00e7\u00e3o.<\/strong><\/p>\n<p class=\"p1\">R: Sempre que h\u00e1 uma falha em qualquer sistema de qualquer tipo (qualquer tipo de banco de dados, servidor de aplicativos, telefone celular etc.), h\u00e1 sempre a possibilidade de perda de dados. Todas as estrat\u00e9gias s\u00e3o tentativas de minimiz\u00e1-la da melhor forma poss\u00edvel, mas, nesse exato cen\u00e1rio, sim, \u00e9 poss\u00edvel coloc\u00e1-los na RAM, mas n\u00e3o na fila de grava\u00e7\u00e3o em disco e\/ou na fila de replica\u00e7\u00e3o, se a m\u00e1quina sofrer uma pane grave no exato momento entre o armazenamento e a RAM e a inser\u00e7\u00e3o nas filas.<\/p>\n<p class=\"p1\"><strong style=\"font-family: inherit;font-size: 1em;line-height: 1.4375em\">P: Quando voc\u00ea adiciona um servidor, ele \u00e9 fragmentado?<\/strong><\/p>\n<p class=\"p1\">R: Sim, usamos \"Hash Sharding\" para todos os dados, o que significa que, para cada par chave-valor, fazemos o hash da chave da cadeia de caracteres para obter o n\u00famero da parti\u00e7\u00e3o (um cont\u00eainer l\u00f3gico) em que ela deve estar. Procuramos o n\u00famero da parti\u00e7\u00e3o no mapa do cluster para ver onde essa parti\u00e7\u00e3o est\u00e1 localizada no cluster do Couchbase e, em seguida, fazemos CRUD diretamente com o n\u00f3 do Couchbase respons\u00e1vel por essa parti\u00e7\u00e3o. Quando voc\u00ea adiciona um novo servidor (ou mais de um), estamos simplesmente redistribuindo as parti\u00e7\u00f5es uniformemente entre o novo n\u00famero de n\u00f3s.<\/p>\n<p class=\"p2\"><strong>P: \u00c9 necess\u00e1rio adicionar servidores apenas para a r\u00e9plica?<\/strong><\/p>\n<p class=\"p2\">R: As r\u00e9plicas, para serem eficazes em uma situa\u00e7\u00e3o de failover, precisam estar localizadas em n\u00f3s diferentes para que os n\u00f3s possam sofrer \"failover\". Para uma r\u00e9plica, \u00e9 necess\u00e1rio que haja pelo menos dois n\u00f3s do Couchbase. Para duas r\u00e9plicas, \u00e9 necess\u00e1rio que haja pelo menos tr\u00eas n\u00f3s do Couchbase e, para tr\u00eas r\u00e9plicas, \u00e9 necess\u00e1rio que haja pelo menos quatro n\u00f3s do Couchbase. \u00c9 claro que o aumento do n\u00famero de r\u00e9plicas tamb\u00e9m aumenta a necessidade de recursos maiores para um desempenho ideal.<\/p>\n<p class=\"p2\"><strong><span style=\"font-family: inherit;font-size: 1em;line-height: 1.4375em\">P: Todos os documentos com o mesmo valor de hash s\u00e3o armazenados na mesma parti\u00e7\u00e3o?<\/span><\/strong><\/p>\n<p class=\"p2\">R: Sim, nossa fun\u00e7\u00e3o de hash est\u00e1 simplesmente transformando uma chave de cadeia de caracteres em um n\u00famero de [0...1023], todas as chaves que fazem hash para o n\u00famero 2 residir\u00e3o no cont\u00eainer de parti\u00e7\u00e3o #2. Essa parti\u00e7\u00e3o residir\u00e1 em um n\u00f3 espec\u00edfico do Couchbase no cluster. Se voc\u00ea adicionar mais servidores e fizer o rebalanceamento, essa parti\u00e7\u00e3o poder\u00e1 ser movida para outro servidor, mas sempre haver\u00e1 apenas um n\u00f3 que ser\u00e1 o \"mestre\" dessa parti\u00e7\u00e3o. A \"r\u00e9plica\" dessa parti\u00e7\u00e3o viver\u00e1, obviamente, em um n\u00f3 separado.<\/p>\n<p class=\"p1\"><strong>P: Em seu exemplo de escala horizontal, o total de parti\u00e7\u00f5es \u00e9 sempre 1024.  1024 \u00e9 o m\u00e1ximo de parti\u00e7\u00f5es em um cluster?<\/strong><\/p>\n<p class=\"p1\">R: Ao conhecer nosso esquema de fragmenta\u00e7\u00e3o e distribui\u00e7\u00e3o, muitos desenvolvedores consideram esse n\u00famero como um bot\u00e3o a ser ajustado, naturalmente, j\u00e1 que todos n\u00f3s somos consertadores. Entretanto, o n\u00famero de parti\u00e7\u00f5es n\u00e3o altera as caracter\u00edsticas de desempenho. Acreditamos que 1024 \u00e9 um bom n\u00famero de parti\u00e7\u00f5es para a distribui\u00e7\u00e3o uniforme dos dados, n\u00e3o \u00e9 algo que precise ser alterado e n\u00e3o \u00e9 um par\u00e2metro de configura\u00e7\u00e3o. O n\u00famero poderia facilmente ser 10.000 ou 990, e isso n\u00e3o alteraria a arquitetura de como distribu\u00edmos os dados (apenas aumentaria ou reduziria o n\u00famero de arquivos de dados).<\/p>\n<p class=\"p1\"><strong>P: Quantos Buckets podem ser instalados em uma \u00fanica m\u00e1quina virtual?<\/strong><\/p>\n<p class=\"p2\">R: \u00c9 dif\u00edcil dar uma regra geral para essa pergunta, pois os recursos alocados para essa m\u00e1quina virtual podem variar muito, mas, em geral, para uma m\u00e1quina de tamanho consider\u00e1vel com mais de 8 n\u00facleos, \u00e9 poss\u00edvel ter cerca de 10 a 12 Buckets. Para cada bucket, alocamos recursos para gerenciar e monitorar, portanto, ter um grande n\u00famero de buckets aumenta a sobrecarga da CPU e, em geral, n\u00e3o \u00e9 recomendado.<\/p>\n<p class=\"p1\"><strong>P: O rebalanceamento dos n\u00f3s tem algum efeito sobre a efici\u00eancia do Couchbase?<\/strong><\/p>\n<p class=\"p1\">R: Priorizamos as opera\u00e7\u00f5es prim\u00e1rias em rela\u00e7\u00e3o \u00e0s opera\u00e7\u00f5es de rebalanceamento no Couchbase, mas, dito isso, h\u00e1 um aumento do tr\u00e1fego de CPU e de rede entre os n\u00f3s do Couchbase durante um rebalanceamento. \u00c9 recomend\u00e1vel fazer o rebalanceamento em hor\u00e1rios fora do pico de uso, \u00e9 claro, o mesmo vale para fazer backups, como em qualquer outro sistema. Fazer um rebalanceamento em hor\u00e1rios de pico de uso certamente tornar\u00e1 o tempo de rebalanceamento mais lento se o uso de pico for muito intenso.<\/p>\n<p class=\"p1\"><strong>P: Quando voc\u00ea faz o rebalanceamento, as parti\u00e7\u00f5es s\u00e3o realmente movidas para outro n\u00f3 ou s\u00e3o duplicadas?<\/strong><\/p>\n<p class=\"p1\">R: Eles s\u00e3o copiados at\u00e9 que o rebalanceamento seja conclu\u00eddo, caso ocorra uma falha durante o rebalanceamento. O n\u00f3 mestre original continua sendo o n\u00f3 mestre at\u00e9 que o rebalanceamento seja totalmente conclu\u00eddo. Ap\u00f3s a conclus\u00e3o do rebalanceamento, o novo n\u00f3 mestre dessa parti\u00e7\u00e3o se torna o mestre e o antigo remove seus dados, e os mapas do cluster s\u00e3o atualizados de acordo com o cluster e, em seguida, com o sdk do cliente.<\/p>\n<p class=\"p1\"><strong>P: Quais ferramentas est\u00e3o dispon\u00edveis para backup\/restaura\u00e7\u00e3o e para ajudar na recupera\u00e7\u00e3o de desastres?<\/strong><\/p>\n<p class=\"p1\">R: Temos as ferramentas de linha de comando cbbackup e cbrestore apenas para essa finalidade; voc\u00ea pode ler sobre elas aqui:\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/pt\/docs\/\/couchbase-manual-2.0\/couchbase-backup-restore-backup-cbbackup.html\/\">https:\/\/www.couchbase.com\/docs\/\/couchbase-manual-2.0\/couchbase-backup-restore-backup-cbbackup.html<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>In our ongoing training series, a number of questions come up each time, I list them out with their respective answers below! Couchbase 101 &#8211; Architecture, Installation and Configuration My Ruby based load generator can be downloaded here:\u00a0https:\/\/github.com\/scalabl3\/ruby-couchbase-loadgen Q: We&#8217;re [&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":[],"ppma_author":[8968],"class_list":["post-1533","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.4 (Yoast SEO v26.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase 101 Q &amp; A - 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\/couchbase-101-q-and-a\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase 101 Q &amp; A\" \/>\n<meta property=\"og:description\" content=\"In our ongoing training series, a number of questions come up each time, I list them out with their respective answers below! Couchbase 101 &#8211; Architecture, Installation and Configuration My Ruby based load generator can be downloaded here:\u00a0https:\/\/github.com\/scalabl3\/ruby-couchbase-loadgen Q: We&#8217;re [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-101-q-and-a\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2013-12-02T08:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-28T08:36:13+00:00\" \/>\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=\"15 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-101-q-and-a\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/\"},\"author\":{\"name\":\"The Couchbase Team\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/764f4a6771ee19bc7af70b70a326fb93\"},\"headline\":\"Couchbase 101 Q &amp; A\",\"datePublished\":\"2013-12-02T08:00:00+00:00\",\"dateModified\":\"2023-06-28T08:36:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/\"},\"wordCount\":3338,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/\",\"name\":\"Couchbase 101 Q &amp; A - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2013-12-02T08:00:00+00:00\",\"dateModified\":\"2023-06-28T08:36:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/#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\/couchbase-101-q-and-a\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase 101 Q &amp; A\"}]},{\"@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":"Couchbase 101 Q &amp; A - 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\/couchbase-101-q-and-a\/","og_locale":"pt_BR","og_type":"article","og_title":"Couchbase 101 Q &amp; A","og_description":"In our ongoing training series, a number of questions come up each time, I list them out with their respective answers below! Couchbase 101 &#8211; Architecture, Installation and Configuration My Ruby based load generator can be downloaded here:\u00a0https:\/\/github.com\/scalabl3\/ruby-couchbase-loadgen Q: We&#8217;re [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-101-q-and-a\/","og_site_name":"The Couchbase Blog","article_published_time":"2013-12-02T08:00:00+00:00","article_modified_time":"2023-06-28T08:36:13+00:00","author":"The Couchbase Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"The Couchbase Team","Est. reading time":"15 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/"},"author":{"name":"The Couchbase Team","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/764f4a6771ee19bc7af70b70a326fb93"},"headline":"Couchbase 101 Q &amp; A","datePublished":"2013-12-02T08:00:00+00:00","dateModified":"2023-06-28T08:36:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/"},"wordCount":3338,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Uncategorized"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/","name":"Couchbase 101 Q &amp; A - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2013-12-02T08:00:00+00:00","dateModified":"2023-06-28T08:36:13+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-101-q-and-a\/#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\/couchbase-101-q-and-a\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase 101 Q &amp; A"}]},{"@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\/1533","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=1533"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1533\/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=1533"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=1533"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=1533"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=1533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}