• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
No sql e as vantagens na utilização do mongodb
 

No sql e as vantagens na utilização do mongodb

on

  • 1,777 views

Palestra que fiz na Univem em Marilia na VI Semana de Tecnologia da Informação. Falei sobre NoSql, vantagens e desvantagens na utilização do MongoDB

Palestra que fiz na Univem em Marilia na VI Semana de Tecnologia da Informação. Falei sobre NoSql, vantagens e desvantagens na utilização do MongoDB

Statistics

Views

Total Views
1,777
Views on SlideShare
1,777
Embed Views
0

Actions

Likes
3
Downloads
18
Comments
2

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

12 of 2 previous next

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

    No sql e as vantagens na utilização do mongodb No sql e as vantagens na utilização do mongodb Presentation Transcript

    • NoSQL e as vantagens na utilização do MongoDB Fabio Perrella - Locaweb
    • Fabio Luiz Perrella Engenheiro de Computação - Poli USP 2004 Lider Técnico de Desenvolvimento SaaS - Locaweb
    • Agenda - Definição NoSql - Diferenças entre Sql e NoSql - Exemplo de uso - Vantagens do MongoDB - Desvantagens
    • NoSql - Definição - Not only Sql - Próxima geração de Banco de Dados fonte: http://nosql-database.org
    • NoSql Características: - não relacional - distribuído - open-source - escalável horizontalmente fonte: http://nosql-database.org
    • NoSql Mais algumas características: - schema-free - replicação simples - API simples - suporta grande quantidade de dados - eventualmente consistente fonte: http://nosql-database.org
    • 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
    • NoSql fonte: http://smist08.wordpress.com/tag/cap-theorem
    • Principais diferenças
    • SQL Exemplos: - Mysql - Oracle - Postgres - SqlServer
    • NoSql Exemplos: - Orientados a documentos: - MongoDB, CouchDB, Cassandra - Chave valor: - Redis, Memcache, etc… - Outros tipos..
    • SQL Tabelas, linhas e colunas:
    • NoSQL (MongoDB) Documentos: ( BSON binary Json )
    • Sql Relacionamentos: Fonte: http://www.codeproject.com/Articles/396822/Basic-Handling-and-Tips-of-Database-Relationships
    • NoSql Embedded documents
    • NoSql .. e também “relacionamentos”
    • Sql Queries: SELECT * table_x WHERE y=1 ORDER BY...
    • NoSql - Object Based (MongoDB) - RESTful APIs (ElasticSearch) - Map-reduce / JS functions (CouchDB) …. - NoSQL!
    • Sql Transações ACID (Atomic Consistent Isolated Durable) ⇒ Consistência! ⇒ Table locks ⇒ Peformance prejudicada ⇒ Exemplo de uso: ERP
    • NoSql Transações BASE (Basically Available, Soft State, Eventually Consistent) ⇒ Disponibilidade! ⇒ Performance! ⇒ Consistência eventual ⇒ Exemplo de uso: Google search
    • Exemplo de uso Blog: - Posts - Comentários - Usuários
    • Exemplo de uso Modelo relacional SELECT * FROM posts p INNER JOIN comments c ON p.id = c.post_id INER JOIN users u on c.user_id = u.id
    • Exemplo de uso Modelo orientado a documento db.posts.find({ _id: 12 })
    • Vantagens do MongoDB
    • Vantagens do MongoDB - Fácil instalação apt-get install mongodb-10gen
    • Vantagens do MongoDB - Open Source - Atualizações constantes - Suporte enterprise (caso necessário) - Comunidade ativa
    • Vantagens do MongoDB - Drivers e ODM (object document mapper) para várias linguagens Exemplo: Mongoid e Mongomapper para Ruby
    • 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
    • Vantagens do MongoDB - Replicação simples (Replica set)
    • Vantagens do MongoDB - Orientado a documentos - Schema Free ⇒ Facilidades para os desenvolvedores!
    • Vantagens do MongoDB - Performance - Escrita assíncrona configurável (write concern levels) - Leitura de dados dos secundários (configurável)
    • Vantagens do MongoDB - Operações de update atômicas - inc - set - push - pop
    • Vantagens do MongoDB - Agregation framework - Map-Reduce - group by - sum() - etc...
    • Vantagens do MongoDB - MMS (MongoDB Management Service)
    • Vantagens do MongoDB - Treinamento online grátis oferecido pela 10gen! http://education.mongodb.com
    • Desvantagens do MongoDB :(
    • 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
    • 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)
    • 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
    • Desvantagens do MongoDB - Custo alto com “parque” de servidores
    • Desvantagens do MongoDB - Global write lock (agora por database) - Solução da 10gen: sharding!... e em alguns casos, habilitar leitura dos secundários
    • Desvantagens do MongoDB - Falta de transações ⇒ Inconsistências!
    • 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
    • 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
    • Desvantagens do MongoDB - Não tem queries! As vezes uma simples consulta requer um código para executá-la
    • Desvantagens do MongoDB - Pouca documentação*
    • Desvantagens do MongoDB - Necessita de DBAs / Sysadmins especialistas em MongoDB, o que é raro no mercado. ⇒ 10gen oferece cursos para developers e sysadmins
    • Duvidas? fabio.perrella@gmail.com http://fabioperrella.blogspot.com.br http://www.slideshare.net/fabioperrella56