Mongo db no mundo real slides

18
MongoDB no mundo real Jean Carlo Nascimento aka Suissa

description

Palestra dada no TDC na trilha de NoSQL

Transcript of Mongo db no mundo real slides

Page 1: Mongo db no mundo real   slides

MongoDB no mundo realJean Carlo Nascimento aka Suissa

Page 3: Mongo db no mundo real   slides

Caso de Uso

MongoDB em produção na Sailthru

Page 4: Mongo db no mundo real   slides

Sailthru

Comunicação personalizada e plataforma de análisehttps://www.sailthru.com/

Page 5: Mongo db no mundo real   slides

Sailthru tamanho

● 200 milhões perfis de usuário● 40 milhões emails enviados por dia● 1000 requests por segundo● 8 replica sets, 40 nós● Bilhões de documentos

Page 6: Mongo db no mundo real   slides

Arquitetura da Sailthru

● Serviços críticos: API, link rewriting, onsite tracking/recommendations, email delivery, reporting/user interface

● Amazon EC2 e Colo(Peer1)● Java, LAMP, Puppet, Scribe, ActiveMQ

Page 7: Mongo db no mundo real   slides

MongoDB na Sailthru

● 2 anos de uso● Replicaset diferentes para propósitos

diferentes● Coleções lógicas separadas no aplicativo● Dados naturalmente particionados por

cliente

Page 8: Mongo db no mundo real   slides
Page 9: Mongo db no mundo real   slides

Main Database

● Banco de dados central● Estatísticas agregadas● Uso geral reduzido● Instancias menores● Coleções que não precisam escalar● Provavelmente nunca precisará de Sharding

Page 10: Mongo db no mundo real   slides

Email Database

● Todos emails já enviados● Uma das maiores coleções (meio bilhão

documentos)● Muitas escritas● Coleções que não precisam escalar● Provavelmente será a primeira coisa a usar

Sharding

Page 11: Mongo db no mundo real   slides

Horizon Database

● Dados de navegação para uso local● Coleção pequena porém com muita leitura,

poderá ser colocada em cache● Escritas aumentarão● Logicamente separada

Page 12: Mongo db no mundo real   slides

Profile Database

● Perfis dos usuários (cerca de 30 milhões)● Separado pois o acesso é mais aleatório e

necessita de um conjunto de dados● Grandes consultas devem acontecer apenas

nos escravos

Page 13: Mongo db no mundo real   slides

Migração do MySQL para MongoDB

● JSON é lingua franca● Migrando uma tabela por vez e rodando os 2

ao mesmo tempo● Mudança no código para escrever nos 2● Escrita e execução de script para "reaterrar"

dados antigos● Remoção do código que escreve para

MySQL

Page 14: Mongo db no mundo real   slides

Vantagens com MongoDB

● Desenvolvimento rápido● Fácil armazenamento dos dados do cliente

como JSON flexível● Ótima performance● Encoraja a escalabilidade● Eles conhecem muito bem

Page 15: Mongo db no mundo real   slides

Lições Aprendidas

● DBRefs são um pouco pesadas● Use referencias legíveis● Índice para todas queries mais usadas● Tire vantagem de múltiplos índices

Page 16: Mongo db no mundo real   slides

Dicas

● Documentos devem ser movidos quando ultrapassarem o tamanho esperado

● Caso possua campos que serão preenchidos posteriormente, ja popule com vazio.

● Autoinc pode ser emulado com findAndModify

● Cuidado com moedas, guarde em centavos● Data BSON é bom para timestamp● Considere antes de usar um Mapper● Use GridFS para arquivos pouco acessados

Page 17: Mongo db no mundo real   slides

mongod

● Nunca finalize com kill -9● Nunca rode sem replicaset● Nunca rode sem log● Use journaling

Page 18: Mongo db no mundo real   slides

Referencias

http://www.slideshare.net/ibwhite/mongodb-in-production-at-sailthruhttp://www.slideshare.net/sailthru/two-years