• Like
  • Save
MongoDB @ Foursquare
Upcoming SlideShare
Loading in...5
×
 

MongoDB @ Foursquare

on

  • 685 views

 

Statistics

Views

Total Views
685
Views on SlideShare
685
Embed Views
0

Actions

Likes
2
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    MongoDB @ Foursquare MongoDB @ Foursquare Presentation Transcript

    • 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 ● Tipos: ○ Orientado a Documentos ○ Chave-Valor ○ BigTable ○ Orientado a Grafos O que é o NoSQL?
    • ● 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
    • Quem utiliza MongoDB? ● Github ● SourceForce ● MTV ● Grooveshark ● SAP ● New York Times ● Forbes ● bit.ly ● Viber ● CartolaFC
    • 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 dispositivos móveis para ganhar pontos e recompensas.
    • 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 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
    • ● Auto-Sharding ● Balanceamento ● Escalabilidade ● Alto tráfego ● Funcionalidades de Geolocalização ● Modelo de dados simplificado Por que mudaram?
    • 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.
    • 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://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