6. NoSql
Mais algumas características:
- schema-free
- replicação simples
- API simples
- suporta grande quantidade de dados
- eventualmente consistente
fonte: http://nosql-database.org
7. NoSql
Eventualmente consistente. Teorema CAP:
- Consistência
- Disponibilidade
- Tolerância a Partição
Só conseguimos escolher 2 destes!
http://www.julianbrowne.com/article/viewer/brewers-cap-theorem
27. Vantagens do MongoDB
- Open Source
- Atualizações constantes
- Suporte enterprise (caso necessário)
- Comunidade ativa
28. Vantagens do MongoDB
- Drivers e ODM (object document mapper)
para várias linguagens
Exemplo: Mongoid e Mongomapper para Ruby
29. Vantagens do MongoDB
- Sharding automático e de fácil configuração
fonte: http://3.bp.blogspot.com/-aa2XhG7okKo/TzzjKOtPd_I/AAAAAAAAI0g/okMlHXFqitc/s1600/mongo_shard.png
38. Desvantagens do MongoDB
- Alto uso de espaço
em disco
- Para cada linha precisa
guardar o nome das
“colunas”
- Tamanho do nome das
“coluna” influencia
39. Desvantagens do MongoDB
- Alto uso de memória RAM
- Índices devem caber na memória RAM
- Working-set preferencialmente deve caber
na memória RAM
⇒ Alternativa: SSD (ou $$D)
40. Desvantagens do MongoDB
- Custo alto com “parque” de servidores
- Cada shard requer no mínimo 3 servidores
para replica set (as máquinas devem ter o
mesmo perfil de preferência)
- Alternativa: Replica set Arbiter
- No mínimo 3 config servers
42. Desvantagens do MongoDB
- Global write lock (agora por database)
- Solução da 10gen: sharding!... e em alguns
casos, habilitar leitura dos secundários
44. Desvantagens do MongoDB
- Manutenção e operação difícil
- Compactação dos dados
- Re-index dos índices
- Replica sets que caem
- Queries pesadas que travam o banco
45. Desvantagens do MongoDB
- Manutenção e operação difícil
- Não tem backup diferencial. Em alguns
casos o Replica Set acaba sendo mais fácil
- Adicionar shardings pode degradar
performance temporiariamente
46. Desvantagens do MongoDB
- Não tem queries!
As vezes uma simples consulta requer um
código para executá-la
48. Desvantagens do MongoDB
- Necessita de DBAs / Sysadmins especialistas
em MongoDB, o que é raro no mercado.
⇒ 10gen oferece cursos para developers e
sysadmins