MongoDB no mundo real Jean Carlo Nascimento aka Suissa
Links               nosqlbr.com.br              jquerybrasil.org           frontendbrasil.com.br          javascriptbrasil...
Caso de UsoMongoDB em produção na Sailthru
SailthruComunicação personalizada e plataforma deanálisehttps://www.sailthru.com/
Sailthru tamanho●   200 milhões perfis de usuário●   40 milhões emails enviados por dia●   1000 requests por segundo●   8 ...
Arquitetura da Sailthru● Serviços críticos: API, link rewriting, onsite  tracking/recommendations, email delivery,  report...
MongoDB na Sailthru● 2 anos de uso● Replicaset diferentes para propósitos  diferentes● Coleções lógicas separadas no aplic...
Main Database●   Banco de dados central●   Estatísticas agregadas●   Uso geral reduzido●   Instancias menores●   Coleções ...
Email Database● Todos emails já enviados● Uma das maiores coleções (meio bilhão  documentos)● Muitas escritas● Coleções qu...
Horizon Database● Dados de navegação para uso local● Coleção pequena porém com muita leitura,  poderá ser colocada em cach...
Profile Database● Perfis dos usuários (cerca de 30 milhões)● Separado pois o acesso é mais aleatório e  necessita de um co...
Migração do MySQL para MongoDB● JSON é lingua franca● Migrando uma tabela por vez e rodando os 2  ao mesmo tempo● Mudança ...
Vantagens com MongoDB● Desenvolvimento rápido● Fácil armazenamento dos dados do cliente  como JSON flexível● Ótima perform...
Lições Aprendidas●   DBRefs são um pouco pesadas●   Use referencias legíveis●   Índice para todas queries mais usadas●   T...
Dicas● Documentos devem ser movidos quando  ultrapassarem o tamanho esperado● Caso possua campos que serão  preenchidos po...
mongod●   Nunca finalize com kill -9●   Nunca rode sem replicaset●   Nunca rode sem log●   Use journaling
Referenciashttp://www.slideshare.net/ibwhite/mongodb-in-production-at-sailthruhttp://www.slideshare.net/sailthru/two-years
DevDay - MongoDb no mundo real - slides
Upcoming SlideShare
Loading in …5
×

DevDay - MongoDb no mundo real - slides

972 views

Published on

Apresentação do caso de uso da Sailthru de utilização do MongoDb e o que eles aprenderão com a utilização, dando algumas dicas de uso.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
972
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

DevDay - MongoDb no mundo real - slides

  1. 1. MongoDB no mundo real Jean Carlo Nascimento aka Suissa
  2. 2. Links nosqlbr.com.br jquerybrasil.org frontendbrasil.com.br javascriptbrasil.com.br comoprogramarphp.com.br github.com/suissa about.me/suissa @osuissa
  3. 3. Caso de UsoMongoDB em produção na Sailthru
  4. 4. SailthruComunicação personalizada e plataforma deanálisehttps://www.sailthru.com/
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. mongod● Nunca finalize com kill -9● Nunca rode sem replicaset● Nunca rode sem log● Use journaling
  17. 17. Referenciashttp://www.slideshare.net/ibwhite/mongodb-in-production-at-sailthruhttp://www.slideshare.net/sailthru/two-years

×