19
NoSQL O que eu vi por ai...

[MinhaVida TechDay] NoSQL

Embed Size (px)

DESCRIPTION

NoSQL - O que eu vi por ai...

Citation preview

Page 1: [MinhaVida TechDay] NoSQL

NoSQLO que eu vi por ai...

Page 2: [MinhaVida TechDay] NoSQL

Cleber Dantas

• 8+ anos de experiência na área de TI• Especialista em desenvolvimento Web• Responsável pela área técnica do grupo Minha

Vida• Ministro treinamentos sobre desenvolvimento

Web• Dou algumas palestras em eventos de tecnologia • @cleberdantas• http://www.cleberdantas.com

Page 3: [MinhaVida TechDay] NoSQL

Not Only SQL

• Uma nova (ou não) escola de pensamentos• Aprendemos o modelo relacional na escola• Not Only RDBMS• MongoDB (DoubleClick)

Page 4: [MinhaVida TechDay] NoSQL

CAP Theorem

• Consistency (all nodes see the same data at the same time)• Availability ( a guarantee that every request receives a

response about whether it was successful or failed)• Partition tolerance (the system continues to operate despite

arbitrary message loss or failure of part of the system)

• “Em um sistema de computação distribuída é impossível ter as 3 características” – Erick Brewer

http://en.wikipedia.org/wiki/CAP_theorem

Page 5: [MinhaVida TechDay] NoSQL

CAP Theorem

Page 6: [MinhaVida TechDay] NoSQL

ACID vs BASE

• ACID (atomicidade, consistência, isolamento, durabilidade) – Lembram?

• BASE (Basically Available, Soft state, Eventual consistency – Relaxamento das regras)

• Onde não ser ACID não é ruim? Think about...

http://en.wikipedia.org/wiki/ACID 

http://en.wikipedia.org/wiki/Eventual_consistency

Page 7: [MinhaVida TechDay] NoSQL

Estrutura de dados

• Key-Value• Column family• Document• Graph

Page 8: [MinhaVida TechDay] NoSQL

Bancos de dados

Page 9: [MinhaVida TechDay] NoSQL

Arquitetura de armazenamento

• Normalmente os NoSQL trabalham em memória• O próprio engine forka o processo de tempos em

tempos e leva os dados ao disco• Para garantir a disponibilidade/performance

trabalham com replicas/sharding

Page 10: [MinhaVida TechDay] NoSQL

Map Reduce

• Funções que coletam/mapeiam dados de 1 ou mais nós gerando uma nova coleção

• Depois agrupam/reduzem os dados os tornando de alguma forma útil

• Ex: Contador de palavras

http://en.wikipedia.org/wiki/MapReduce

Page 11: [MinhaVida TechDay] NoSQL

RDBMS Anti Patterns by @gleicon

Page 12: [MinhaVida TechDay] NoSQL

RDBMS Anti Patterns by @gleicon

Page 13: [MinhaVida TechDay] NoSQL

RDBMS Anti Patterns by @gleicon

Page 14: [MinhaVida TechDay] NoSQL

RDBMS Anti Patterns by @gleicon

Page 15: [MinhaVida TechDay] NoSQL

RDBMS Anti Patterns by @gleicon

Page 16: [MinhaVida TechDay] NoSQL

RDBMS Anti Patterns by @gleicon

Page 17: [MinhaVida TechDay] NoSQL

RDBMS Anti Patterns by @gleicon

Page 18: [MinhaVida TechDay] NoSQL

Mensagem final…

• Cada vez mais temos que pensar muito nos problemas que estamos resolvendo e como vamos resolve-lo, independente da tecnologia

• Se é com PHP, Asp.Net, Java, Oracle, Sql Server, MemCached, Redis, MongoDB, Lua, Nuvem, Hadoop, Lucene ou não isso realmente não importa afinal somos profissionais de tecnologia. #OpenMind

• Temos que estudar

Page 19: [MinhaVida TechDay] NoSQL

Obrigado. Perguntas? Se eu souber responder claro