O TuneWiki agora armazena mais de 1.000.000.000 de documentos para seu serviço no Couchbase, provando mais uma vez a escalabilidade e o desempenho que você obtém com o Couchbase. Isso representa um bilhão de coisas a menos com que os usuários precisam se preocupar. Leia este blog para saber mais...


Outro dia, tive a chance de conversar com Chad Kouse, CTO e cofundador do TuneWiki, um aplicativo incrível desenvolvido com o Couchbase. TuneWiki está revolucionando a experiência de música social, dando aos amantes da música a oportunidade de compartilhar suas músicas, letras e fotos favoritas com os amigos. É o aplicativo #1 no Spotify com o maior banco de dados do mundo de letras de música com rolagem, proporcionando uma experiência de audição inigualável no estilo karaokê.

Com mais de um bilhão de objetos de dados e crescendo, o TuneWiki usa o Couchbase Server para servir letras para milhões de usuários em todo o mundo. Eu gostaria de compartilhar neste blog minha conversa com Chad, pois ele explica por que a equipe do TuneWiki escolheu o Couchbase Server, o que eles estão fazendo com o Couchbase e por que ele está confiante nos recursos do Couchbase Server para dar suporte à crescente base de usuários do TuneWiki.

Chad, você pode compartilhar mais detalhes sobre como seu aplicativo usa o Couchbase?
No TuneWiki, usamos o Couchbase para armazenar dados em cache. Encontramos o Couchbase quando estávamos procurando um substituto para o memcached. Se um nó do memcached falhasse repentinamente ou se estivéssemos adicionando um novo nó do memcached ao cluster, o aplicativo inteiro ficaria mais lento. O MySQL simplesmente não era capaz de acompanhar o ritmo. Também era necessário um esforço extra quando queríamos expirar itens do cache e manter o MySQL em sincronia com a camada de cache.

Com o Couchbase, não precisávamos ter dois armazenamentos de dados - apenas um único. O Couchbase era fácil de configurar, usar e gerenciar. Como a API do Couchbase era compatível com o memcached, podíamos deixar o código do memcached como está e só precisávamos substituir todas as chamadas do MySQL pelo Couchbase. O Couchbase nos proporcionou o desempenho previsível de que precisávamos para nosso aplicativo. Também nunca tivemos que nos preocupar com o crescimento do cluster. A adição de mais nós sempre nos proporcionou o aumento de desempenho de que precisávamos sem diminuir o retorno. O uso do Couchbase Server simplificou bastante nossa arquitetura de back-end.

O que exatamente seu aplicativo armazena no Couchbase?
Basicamente, armazenamos tudo o que nosso aplicativo precisa no Couchbase. Isso inclui letras, linhas do tempo, chaves de API para validar rapidamente as ações do usuário e tokens OAuth. O Tunewiki tem elementos sociais, como o compartilhamento de fotos e letras de músicas com amigos. Se você estiver usando esse recurso, os itens que você compartilha são armazenados no Couchbase.

Fale-me sobre a carga de trabalho do seu aplicativo.
Atualmente, temos mais de 1 bilhão de objetos armazenados no Couchbase e o sistema é executado a mais de 10 mil operações por segundo. Dimensionamos nosso cluster para manter cerca de 80% de nossos dados totais na RAM. Por exemplo, usamos contadores para monitorar o uso da API e limitar os clientes com base nesses contadores. Com um banco de dados relacional, como você pode imaginar, isso não é algo que possa ser feito facilmente. Com o Couchbase, esse contador é compartilhado em todo o nosso cluster de servidores de API automaticamente, sem a necessidade de escrever qualquer código de aplicativo adicional. Usamos as APIs de incremento atômico para incrementar o contador na memória para rastrear os acessos - é leve porque está tudo na memória e nunca precisa ir para o disco. Não temos nenhuma lentidão e nunca há um gargalo.

Que conselho você daria a outros usuários do Couchbase?
O Couchbase é uma ótima opção, mesmo se você estiver começando com um projeto pequeno. Você pode fazer experimentos com apenas 1 ou 2 nós durante o desenvolvimento e, quando estiver pronto para entrar em produção, poderá facilmente provisionar mais nós em seu cluster para escalonar. Também recebemos um excelente suporte do Couchbase e recomendo que os usuários consultem a página Grupos do Google do Couchbase e outros materiais que estão no site do Couchbase.

Quais são as próximas etapas? Há novos recursos ou novos aplicativos que você planeja criar com o Couchbase Server 2.0?
As visualizações no Couchbase Server 2.0 são um recurso interessante. Planejamos usar visualizações no Couchbase Server para a manutenção geral dos nossos dados e para melhorar a funcionalidade do aplicativo. Com um armazenamento de valor-chave, não era possível oferecer suporte a predicados em seus dados - era preciso saber quais chaves eram necessárias. Isso envolveria a varredura de seus dados para descobrir quais chaves eram relevantes e quais não eram. Com um bilhão de objetos no Couchbase, você pode imaginar como isso seria tedioso.

Por exemplo, se houver várias chaves OAuth que não são mais necessárias, seria bom usar exibições para obter uma lista delas, de modo que possam ser limpas. Bem, sem as exibições, você poderia definir um tempo de expiração para elas, mas se você se esquecesse de colocar um valor para o tempo de expiração, essas chaves viveriam para sempre.

Onde as pessoas podem saber mais sobre como você usou o Couchbase?
Os usuários do Couchbase podem conferir nosso blog para saber mais.

Autor

Postado por Don Pinto, gerente principal de produtos da Couchbase

Don Pinto é gerente de produto principal da Couchbase e atualmente está concentrado no avanço dos recursos do Couchbase Server. Ele é extremamente apaixonado por tecnologia de dados e, no passado, foi autor de vários artigos sobre o Couchbase Server, incluindo blogs técnicos e white papers. Antes de ingressar no Couchbase, Don passou vários anos na IBM, onde ocupou a função de desenvolvedor de software no grupo de gerenciamento de informações DB2 e, mais recentemente, como gerente de programa na equipe do SQL Server na Microsoft. Don tem mestrado em ciência da computação e é bacharel em engenharia da computação pela Universidade de Toronto, no Canadá.

Deixar uma resposta