1. Estudo de Caso @ Foursquare
Antônio José
Bruno Furtado
Edywaldo Rhonan
Jorge Anderson
Maurício José
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. ● 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.
5. Quem utiliza MongoDB?
● Github
● SourceForce
● MTV
● Grooveshark
● SAP
● New York Times
● Forbes
● bit.ly
● Viber
● CartolaFC
7. 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.
21. 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
22. ● Auto-Sharding
● Balanceamento
● Escalabilidade
● Alto tráfego
● Funcionalidades de Geolocalização
● Modelo de dados simplificado
Por que mudaram?
23. 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.
24. Como é agora (EC2)
● 10 clusters = 7 sharded + 3 non-sharded
● 3 ~ 4 nós de replicação por shard
● + 200 nós de replicas