Boo box e my sql

24
boo-box e MySQL uma história de evolução continua de um sistema de publicidade on-line

Transcript of Boo box e my sql

Page 1: Boo box e my sql

boo-box e MySQLuma história de evolução continua de um sistema de publicidade

on-line

Page 2: Boo box e my sql

O que fazemos ?

Anúncios em blogs, sites e redes sociais

Page 3: Boo box e my sql

Onde fazemos ?

•430 mil sites/blogs/perfis em redes sociais

•60 mil publishers cadastrados

•60M de usuários únicos/mês

•1B de anúncios/mês

Page 4: Boo box e my sql

Como fazemos ?

Page 5: Boo box e my sql

O que isso gera ?

•40 GB dados/dia (raw)

•1.2 TB dados/mês (raw)

•15 GB de informações/dia (agregado)

•450 GB de informações/mês (agregado)

Page 6: Boo box e my sql

•behavioral targeting

•re-targeting

•segmentation

• inventory targets

O que processamos ?

Page 7: Boo box e my sql

Linha do Tempo

0

22,500,000

45,000,000

67,500,000

90,000,000

20092010

20112012impressões/dia

Page 8: Boo box e my sql

Adicionado índices para otimizar JOIN’s entre tabelas

Problema no processamento de grandes volumes de dados

Desafio 109/2009

Page 9: Boo box e my sql

Desafio 1

Adicionado índices para otimizar JOIN’s entre tabelas

09/2009

Page 10: Boo box e my sql

Implementação de um sistema de fila/consumidor para inserção assíncrona

Crescimento no número de inserções gerando aumento no tempo de resposta nas APP’s

Desafio 212/2009

Page 11: Boo box e my sql

Desafio 2

Implementação de um sistema de fila/consumidor para inserção assíncrona

12/2009

Page 12: Boo box e my sql

Aumento no enfileiramento de inserções

Desafio 303/2010

Page 13: Boo box e my sql

Desafio 3

Modificado ‘engine’ do servidor mestre para ‘blackhole’

03/2010

Page 14: Boo box e my sql

Lentidão na consulta de estatísticas

Desafio 407/2010

Page 15: Boo box e my sql

Desafio 4

Propagação do resultado das ‘triggers’ para servidores slave

07/2010

Page 16: Boo box e my sql

Lentidão na inserção de dados mysql (max 4.5K/s)

Desafio 501/2011

Page 17: Boo box e my sql

Desafio 5

Troca do sistema de arquivo para XFS (6K/s)

01/2011

Page 18: Boo box e my sql

Lentidão para consulta de dados massivos (Big Data)

Desafio 606/2011

Page 19: Boo box e my sql

Desafio 6

Utilização de Google BigQuery e AWS EMR

06/2011

Page 20: Boo box e my sql

•8 TB de dados agregados

•32 TB em relatórios processados/mês

•35 TB em dados (Raw)

•22 B em fatos gerados pela rede

Cenário Atual

Page 21: Boo box e my sql

Encurtador

•NGINX + Lua + MySQL

•Lógica do ‘shortener’ na camada MySQL usando Stored Procedures

•20K requests por segundos

Page 22: Boo box e my sql

boas praticas

•Não permitir null no banco de dados, defina um valor default sempre que possível

•Usar banco com sql_mode menos permissivo

•Cuidado com indíces (falta e excessos)

Page 23: Boo box e my sql

MySQL + Memcached

•100% compatível com memcached

•Menor tempo de resposta. será ???

•Gerenciamento de cache simplificado

•Persistência