Usando Redis para otimizar o sistema boo-box

Preview:

DESCRIPTION

 

Citation preview

7 mil publishers 420 milhões de impressões ao mês

O que é qualidade?

Excelência

Targeting

Transparência

VelocidadeIdealismo

Formatos

Originalidade

Monetização diferenciada

SimplicidadeEstatísticas

Liberdade de escolha

Felipe Luis de Souza Vieira@felipetiohttp://felipetio.net

Excelência

Targeting

Transparência

VelocidadeIdealismo

Formatos

Originalidade

Monetização diferenciada

SimplicidadeEstatísticas

Liberdade de escolha

Targeting

De onde ele é?

Que informaçõestemos sobre ele? Quais sites

foram visitados?

O que ele procura?

Targeting

De onde ele é?

Que informaçõestemos sobre ele? Quais sites

foram visitados?

O que ele procura?

User behaviour

Inteligência artificialGeo

localização

Classificação de textos

Formatos

Não sei deixar nada bonito na web,

Formatos

Não sei deixar nada bonito na web,

Nem nesssa apresentação (obrigado @fmafra),

Formatos

Não sei deixar nada bonito na web,

Nem nesssa apresentação (obrigado @fmafra),

Ainda não consigo desenvolver layouts com mais de 16 cores.

Formatos

como desenvolvedor eu sei por que como usuário eu sei

Formatos

OK

NÃO

Velocidade

como desenvolvedor eu sei por que como usuário eu sei

Velocidade

Jul 09 Aug 09 Sep 09 Oct 09 Nov 09 Dec 09

121MM

93MM

72MM

55MM

42MM34MM

Evolução de Impressions

Velocidade

0 100

Velocidade

0 100

Velocidade

0 200

Velocidade

Velocidade

!"#"$%&'$()!

*+,$"+-

-)./)!"!

(+#0&1#(#,%)-

233&4 233&5

%#%6)&7%#%6)&4!"#$%&'()'*+#!%$(!,!-&

!"#$%&'(,))".!,%.*/

!"#$%&'("*0

-)3($%#")

8-$")-)#0

-)#0

8-$")

8-$")-)#0

!"#$%&'+,%,$*#'!&

-)3($%#")

233&9 233&7

:;<;<

:;<;<

=>

http://www.boo-box.com/blog/br/2009/nova-infraestrutura-de-servidores-web-do-sistema-boo-box/

Velocidade

Velocidade

Não processar os requests...

Velocidade

Velocidade

CACHE

Evolução do sistemade cache boo-box

Tags/Shop

Produtos

Prepara Requisição

Pega Produtos

Log

DEMORA

APIServidor

Início

Problemas

TempoLimite de RequestsIndisponibilidade da API

Primeira Estratégiade cache adotada

CouchDB e Beanstalked

Tags/Shop

Produtos

Adiciona p/atualização

Pega Produtos

Log

+++Rápido

Fluxo do requestServidor APIFila Cache

Pega Shop/Tags

PreparaRequisição

Pega Produtos

Salva Produtos

Fluxo de atualização do cacheAPIFila Cache Daemon

(loop)

Resultado

TempoLimite de RequestsIndisponibilidade da API

Resultado

TempoLimite de RequestsIndisponibilidade da API

TempoLimite de RequestsIndisponibilidade da API

Problemas

Expiração do cacheEscrita em discoAtualização de versãoManutenção

Solução atualRedis e Beanstalked

Redis

Como memcacheKey-values storeDados na memóriaCache implementado

Diferente do memcacheOperações avançadas com as keysEscalabilidadePersistência

Redis

Como memcacheKey-values storeDados na memóriaCache implementado

Diferente do memcacheOperações avançadas com as keysEscalabilidadePersistência

Em números:110.000 SETs/sec81.000 GETs/sec

Shop/Tags

Produtos

Adiciona p/atualização

Tem Produtos (sim)

Log

Fluxo do requestServidor APIFila Cache

Pega Produtos

Shop/Tags

Produtos

Adiciona p/atualização

Tem Produtos (sim)

Log

Fluxo do requestServidor APIFila Cache

MEM CACHE

Pega Produtos

Shop/Tags

Produtos

Adiciona p/atualização

Tem Produtos (não)

Log

Fluxo do requestServidor APIFila Cache

MEM CACHE

Pega Produtos

Salva

Shop/Tags

Produtos

Requisitaatualização

Tem Produtos (não)

Log

Fluxo do requestServidor APIFila Cache

MEM CACHE

Pega Produtos (demorou)

Pega Produtos Similares

(loop)

Pega produtos

Pega Shop/Tags

Salva

Fluxo de atualização do cacheAPIFila CacheDaemon

Velho?

Resultados

Recursos otimizados

0

100

200

300

GB

couchDB

0

100

200

300

MB

Recursos otimizados

Redis

Recursos otimizados

300 GB -> 300 MBSem intervenção!

0

100

200

300

400

CP

URecursos otimizados

couchDB

0

100

200

300

400

CP

URecursos otimizados

Redis

Recursos otimizados

Usando 3%da CPU

Recursos otimizados

Quer mais?Redução de 2 servidores...Reduçao do response time:

Felipe Luis de Souza Vieira@felipetiofelipe@boo-box.comhttp://felipetio.net