Estudo de Caso @ Foursquare
Antônio José
Bruno Furtado
Edywaldo Rhonan
Jorge Anderson
Maurício José
● Not only SQL
● Sem esquema pré-definido
● Características:
○ Escalabilidade
○ Performance
○ Agilidade
○ Complexidade
● T...
● Banco de Dados Orientado a Documentos
● Replicação e Alta Disponibilidade
● Auto-Sharding
● Desenvolvido pela 10gen
● Da...
Quem utiliza MongoDB?
● Github
● SourceForce
● MTV
● Grooveshark
● SAP
● New York Times
● Forbes
● bit.ly
● Viber
● Cartol...
Estudo de Caso
O que é?
Foursquare é uma rede
social baseada na
localização do usuário que
permite que ele faça
"check-in" utilizando
dis...
Alguns Números
Junho de 2011
● > 9,000,000 pessoas
● > 750,000,000 checkins
● > 20,000,000 lugares
● > 20,000,000 pessoas
● > 2,000,000,000 checkins
● > 30,000,000 lugares
Maio de 2012
● > 25,000,000 pessoas
● > 3,000,000,000 checkins
● > 40,000,000 lugares
Dezembro de 2012
Infraestrutura
PHP + MySQL @ VPS
Como era antes
Janeiro/2008 ~ Setembro/2009
PHP + MySQL @ VPS (Slicehost)
Setembro/2009 ~ Janeiro/2010
Scala + PostgreSQL @ EC2 (Amazon)
Scala + MongoDB @ Foursquare (datacenter
próprio)
Como é agora
Histórico de mudanças
Janeiro/2010 ~ Março/2010
● Troca do banco para Mongo. Somente
tabelas inicialmente.
● Em abril troca total.
Março/2010 ~ Setembro/2011
Transição completa dos dados.
Junho/2012~Setembro/2012
Datacenter próprio.
Passo a passo da migração
● Modificar o aplicativo para escrever em
ambos os bancos de dados
● Backfill data (Preencher to...
● Auto-Sharding
● Balanceamento
● Escalabilidade
● Alto tráfego
● Funcionalidades de Geolocalização
● Modelo de dados simp...
Como era antes?
● Inicialmente: PostgreSQL com apenas uma
database.
● Dados cresceram rapidamente.
● Dados foram divididos...
Como é agora (EC2)
● 10 clusters = 7 sharded + 3 non-sharded
● 3 ~ 4 nós de replicação por shard
● + 200 nós de replicas
Duvidas?
● http://blog.10gen.com/post/15400944604/mongodb-case-study-foursquare
● http://www.10gen.com/customers/foursquare
● http:...
MongoDB @ Foursquare
MongoDB @ Foursquare
Próximos SlideShares
Carregando em…5
×

MongoDB @ Foursquare

762 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
762
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
13
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

MongoDB @ Foursquare

  1. 1. Estudo de Caso @ Foursquare Antônio José Bruno Furtado Edywaldo Rhonan Jorge Anderson Maurício José
  2. 2. ● Not only SQL ● Sem esquema pré-definido ● Características: ○ Escalabilidade ○ Performance ○ Agilidade ○ Complexidade ● Tipos: ○ Orientado a Documentos ○ Chave-Valor ○ BigTable ○ Orientado a Grafos O que é o NoSQL?
  3. 3. ● Banco de Dados Orientado a Documentos ● Replicação e Alta Disponibilidade ● Auto-Sharding ● Desenvolvido pela 10gen ● Dados estruturados em JSON/BSON ● GridFS ● Map-Reduce ● Aloca os dados de forma sequencial no disco ○ Torna a busca mais veloz MongoDB
  4. 4. Quem utiliza MongoDB? ● Github ● SourceForce ● MTV ● Grooveshark ● SAP ● New York Times ● Forbes ● bit.ly ● Viber ● CartolaFC
  5. 5. Estudo de Caso
  6. 6. O que é? Foursquare é uma rede social baseada na localização do usuário que permite que ele faça "check-in" utilizando dispositivos móveis para ganhar pontos e recompensas.
  7. 7. Alguns Números
  8. 8. Junho de 2011 ● > 9,000,000 pessoas ● > 750,000,000 checkins ● > 20,000,000 lugares
  9. 9. ● > 20,000,000 pessoas ● > 2,000,000,000 checkins ● > 30,000,000 lugares Maio de 2012
  10. 10. ● > 25,000,000 pessoas ● > 3,000,000,000 checkins ● > 40,000,000 lugares Dezembro de 2012
  11. 11. Infraestrutura
  12. 12. PHP + MySQL @ VPS Como era antes
  13. 13. Janeiro/2008 ~ Setembro/2009 PHP + MySQL @ VPS (Slicehost)
  14. 14. Setembro/2009 ~ Janeiro/2010 Scala + PostgreSQL @ EC2 (Amazon)
  15. 15. Scala + MongoDB @ Foursquare (datacenter próprio) Como é agora
  16. 16. Histórico de mudanças
  17. 17. Janeiro/2010 ~ Março/2010 ● Troca do banco para Mongo. Somente tabelas inicialmente. ● Em abril troca total.
  18. 18. Março/2010 ~ Setembro/2011 Transição completa dos dados.
  19. 19. Junho/2012~Setembro/2012 Datacenter próprio.
  20. 20. Passo a passo da migração ● Modificar o aplicativo para escrever em ambos os bancos de dados ● Backfill data (Preencher todo o histórico de dados no Mongo, com dados vindos do Postgres) ● Modificar aplicativo para ler do Mongo ● Parar de escrever para SQL, uma vez que temos certeza que todos os dados estão sendo escritos corretamente para o Mongo
  21. 21. ● Auto-Sharding ● Balanceamento ● Escalabilidade ● Alto tráfego ● Funcionalidades de Geolocalização ● Modelo de dados simplificado Por que mudaram?
  22. 22. Como era antes? ● Inicialmente: PostgreSQL com apenas uma database. ● Dados cresceram rapidamente. ● Dados foram divididos em dois nós: Um para checkins e outro para o resto.
  23. 23. Como é agora (EC2) ● 10 clusters = 7 sharded + 3 non-sharded ● 3 ~ 4 nós de replicação por shard ● + 200 nós de replicas
  24. 24. Duvidas?
  25. 25. ● http://blog.10gen.com/post/15400944604/mongodb-case-study-foursquare ● http://www.10gen.com/customers/foursquare ● http://www.10gen.com/presentations/mongonyc-2011/foursquare ● http://www.10gen.com/presentations/mongonyc-2012-scaling-mongodb-foursquare ● http://www.10gen.com/presentations/mongodb-foursquare-cloud-bare-metal ● https://docs.google.com/presentation/d/1HyWT_zmP-lEAy- 3_eP3KfN6_ql6YeMXxjIIszop9zo8/edit#slide=id.i0 ● http://pt.scribd.com/doc/97692109/Hadoop-Foursquare ● https://moodle2.quixada.ufc.br/pluginfile. php/793/mod_resource/content/2/04_NoSQL_ModelosDistribuicao.pdf ● https://moodle2.quixada.ufc.br/pluginfile. php/779/mod_resource/content/1/04_NoSQL_Introducao.pdf ● http://www.slideshare.net/RodrigoDeSouzaValerio/bancos-de-dados-nosql-not-only-sql ● http://www.youtube.com/watch?v=Ff4_DNKKPeo ● https://docs.google.com/presentation/d/1E29UreMb9su- pfC5ZROMHCIIUsQFsK_QMWEHKtXIdoU/present#slide=id.i0 Referências

×