Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Agenda
Definio de NoSQL Atributos de qualidade e trocas Modelo de dados Escalabilidade Transaes Consistncia e disponibilidade Desempenho
01/45
Chang, F. et al (2006). Bigtable: A Distributed Storage System for Structured Data. DeCandia, G. et al (2007). Dynamo: Amazon's Highly Available Key-value Store. Cooper, B. et al (2008). PNUTS: Yahoo!'s Hosted Data Serving Platform.
02/45
SGBDs NoSQL
No-relacionais No-ACID Distribudos
04/45
SGBDs NoSQL
No-relacionais No-ACID Distribudos
Para modelos de dados: 24/09, 14:00, CEC (lab 06): Aula de MAC5855
05/45
Atributos de qualidade
Tempo de projeto Modificabilidade Testabilidade ... Tempo de execuo Desempenho Disponibilidade Escalabilidade Segurana ...
Barbacci, M. (1995). Quality Attributes. Bass, L. et al. (2003). Software Architecture in Practice. 2a ed.
06/45
07/45
Modelo de dados
Modelos no-relacionais
Grafos: interconectividade dos dados to ou mais importante quanto os dados em si Chave-valor: modelo simples Orientado a documentos: dados semiestruturados
Angles, R. e Gutierrez, C. (2008) Survey of Graph Database Models. Buneman, P. (1997). Semistructured Data.
09/45
SGBDs relacionais
Esquema Restries de integridade (entidade, referencial, domnio) Normalizao
10/45
Esquema
Banco de dados compartilhado
Diferena de impedncia
OO Herana Encapsulamento Polimorfismo ... Relacional Relacionamentos Junes Normalizao ...
Escalabilidade
Escalando relacional
N servidores web 1 db
Mestre / Escravo
Mestre / Escravo
Particionamento funcional
Particionamento horizontal
Perde-se
Junes Normalizao Integridade de entidade e referencial Transparncia de localizao
20/45
Transaes
ACID
Atomicidade Consistncia Isolamento Durabilidade
22/45
ACID e escalabilidade
Atomicidade: protocolo distribudo (2PC) Consistncia: problemas com rplicas Isolamento: locks distribudos
Abadi, D. (2010). The problems with ACID, and how to fix them without going NoSQL. http://dbmsmusings.blogspot.com/2010/08/problems-with-acid-and-how-to-fix-them.html
23/45
24/45
Consistncia e Disponibilidade
Teorema CAP
Consistncia Disponibilidade Tolerncia partio
Fonte: http://blog.mattwoodward.com/ Brewer, E. (2000). Towards Robust Distributed Systems. Gilbert, S. e Lynch, N. (2002). Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-tolerant Web Services
26/45
ACID x BASE
Basicamente disponvel (Basically available) Soft state Consistente em momento indeterminado (Eventually consistent)
27/45
Consertando inconsistncias
Fazer nada Tentar novamente Ao de compensao
Hohpe, G. (2004). Starbucks Does Not Use Two-Phase Commit. http://www. eaipatterns.com/ramblings/18_starbucks.html
37/45
Desempenho
Cenrios
Cargas de trabalho diferentes precisam de tratamento diferente OLTP Operao CRUD pequeno e rpido Consultas simples OLAP Informao (BI) Batches demorados Consultas complexas
Stonebraker, M. e Cetintemel, U. (2005)."One Size Fits All": An Idea Whose Time Has Come and Gone.
39/45
Experimentos
OLTP H-Store (VoltDB) 82x mais rpido que um SGBD comercial OLAP C-Store (Vertica) 124x mais rpido que um SGBD comercial orientado a linha 21x mais rpido que um SGBD comercial orientado a coluna
Stonebraker, M. et al. (2007).The End of an Architectural Era (It's Time for a Complete Rewrite). 40/45 Stonebraker, M. et al. (2005). C-store: a Column-oriented DBMS.
Tempos em um SGBDR
Logging, locking, latching e gerenciamento de buffer 1/60 das instrues em uma transao so trabalho til 20x mais rpido sem esses sub-subsistemas
Harizopoulos, S. et al. (2008). OLTP Through the Looking Glass, and What We Found There.
41/45
Especializaes
Problema no est no modelo relacional, nem na SQL Ordens de grandeza de diferena Persistncia poliglota
42/45
Concluses
Contexto importa Balancear vantagens e desvantagens fundamental
43/45
Prximos passos
Foco em chave-valor (DHT) Desenvolvimento de taxonomia Arquitetura de referncia Experimentos de escalabilidade e desempenho riak_core Benchmark para cloud do Yahoo!
44/45