Como escolher sua
ferramenta de dados
usando o teorema CAP
Gustavo Concon
Objetivo aqui hoje
Desmistificar
NoSQLQual eu uso???
Enxurrada de produtos
WTH is NOSQL????????
➔NOSQL (Not Only SQL)
➔É uma linguagem de queries?
➔É uma tecnologia de bigdata?
Termo usado pra categorizar essas soluções
de alto volumeSegundo Martin Fowler: uma hashtag do Twitter #nosql
Relational Databases
Relational Databases
CONSISTÊNCIA!!!
INTEGRAÇÃO
ESTOQUECORPORATIVO
VENDAS
Internet Scale
INSERT
SELECT
Teorema CAP
➔Consistency
Todos enxergam os mesmos dados
➔Availability
Operações com alta disponibilidade (Requisições sempre
atendidas)
➔Partition-tolerance
Caso a comunicação (rede) entre um nó e outro falhe, o
sistema continua operante
Teorema CAP
CONSISTÊNCIAAVAILABILITY
(DISPONIBILIDADE)
PARTITION
TOLERANCE
CA
CP PA
SÓ 2!!!
C+A - CONSISTENCY + AVAILABILITY
RDBMS➔Sem necessidade de ser
“internet scale”
➔Maduro
➔Consegue alta disponibilidade
➔Todos enxergam o dado
imediatamente após o commit
C+P - CONSISTÊNCIA + PART. TOLERANCE
MemcacheDB
➔Parte dos dados (shard) pode
ficar indisponível (por isso não
é A)
➔CP -> AP (consistência
eventual)
➔master/slave dentro do shard
A+P - AVAILABILITY + PART. TOLERANCE
➔+++INSERT
➔Consistência eventual
BOOKING.COM
1 VAGA!!!
CONSISTÊNCIA!!
!
É UMA
DECISÃO DE NEGÓCIO!!!
Definiu qual garantia vc vai
abrir mão?
Tipos de NoSQL
➔Key-value
➔Document
➔Columnar
➔Graph
Key-value
➔ “Like a hashmap”
➔Schemaless
➔Value é caixa preta!
key1 <Object 1>
key2 <Object 2>
key3 <Object 3>
key4 <Object 4>
Document-oriented
➔Schemaless
➔Value mais compreensível
Column-oriented
➔Alguns são Schemaless,
menos flexíveis
➔Bom para sumarizações
Graph-oriented
➔Schemaless
➔Redes sociais!
NoSQL == Produtividade
RELACIONAL NÃO ESTÁ
MORTO!
NÃO JUSTIFIQUE
TECNOLOGIA PELA
TECNOLOGIA
Título para o Slide
Obrigado!