[MinhaVida TechDay] NoSQL

Preview:

DESCRIPTION

NoSQL - O que eu vi por ai...

Citation preview

NoSQLO que eu vi por ai...

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

Not Only SQL

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

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

CAP Theorem

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

Estrutura de dados

• Key-Value• Column family• Document• Graph

Bancos de dados

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

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

RDBMS Anti Patterns by @gleicon

RDBMS Anti Patterns by @gleicon

RDBMS Anti Patterns by @gleicon

RDBMS Anti Patterns by @gleicon

RDBMS Anti Patterns by @gleicon

RDBMS Anti Patterns by @gleicon

RDBMS Anti Patterns by @gleicon

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

Obrigado. Perguntas? Se eu souber responder claro