SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
NoSQL:
Perdas e
           Mauricio De Diana
Ganhos     mdediana@ime.usp.br
Arquitetura
Trade-offs
Latência
Vazão
Segurança
...
Manutenibilidade
Testabilidade
Modelo de dados




Performance / Escalabilidade
NOSQL: scaling to size and scaling to complexity
http://blogs.neotechnology.com/emil/2009/11/nosql-scaling-to-size-and-scaling-to-complexity.html
Bigtable

"Bigtable is a distributed storage system for managing
structured data that is designed to scale to a very large size:
petabytes of data across thousands                       of commodity
servers."



Bigtable: A Distributed Storage System for Structured Data [2006]
Dynamo

"Reliability at massive scale is one of the biggest
challenges we face at Amazon.com [...]. The Amazon.com
platform [...] is implemented on top of an infrastructure of
tens of thousands of servers and network
components located in many               datacenters around the
world."



Dynamo: Amazon's Highly Available Key-value Store [2007]
Modelo de dados
Modelo mais adequado

              Impedância Objeto-Relacional

              Grafos: interconectividade dos
              dados é tão ou mais importante
              quanto os dados em si

              Modelos simples: chave-valor
Relacional

Esquema

Restrições de integridade
(pks, fks, tipos e valores)

Normalização
NoSQL and SQL Anti Patterns

Dynamic table creation

Row alignment

Extreme joins




http://www.slideshare.net/gleicon/nosql-and-sql-anti-patterns
Dados semi-estruturados
Estrutura heterogênea

Estrutura parcial

Esquemas que evoluem rapidamente

Distinção pouco clara entre esquema e dados
Shared Database




http://www.eaipatterns.com/SharedDataBaseIntegration.html
Performance /
Escalabilidade
Escalar relacional
N web servers
1 db
master / slave
master / slave
functional partitioning
sharding
Joins
        Integridade referencial
        Auto-increment
        Normalização


e ainda carrega todo o peso de um RDMBS
One size fits all?




"One Size Fits All": An Idea Whose Time Has Come and Gone [2005]
One size does not fit all

OLTP                    OLAP

Operação                Informação (BI)

CRUD pequeno e rápido   Batches demorados

Queries simples         Queries complexas
One size does not fit all

OLTP                                            OLAP

                                                C-Store
H-Store




The End of an Architectural Era (It's Time for a Complete Rewrite) [2007]
C-store: a Column-oriented DBMS [2005]
Transações

Atomicidade
Consistência
Isolamento
Durabilidade
Teorema CAP

 Consistency
 Availability
 Partition Tolerance


Towards Robust Distributed Systems [2000]
Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-tolerant Web
Services [2002]
ACID x BASE

Basically Available
Soft state
Eventual consistency


BASE: An Acid Alternative [2008]
Eventually Consistent [2009]
eventual en                X        eventual pt

Occurring at an unspecified       Dependente de acontecimento
time in the future                incerto; casual; fortuito; possível
                                  mas incerto.
Workarounds

  Não fazer nada

  Ações de compensação




Starbucks Does Not Use Two-Phase Commit
http://www.eaipatterns.com/ramblings/18_starbucks.html
Polyglot persistence
Obrigado




           mdediana@ime.usp.br

Contenu connexe

Tendances

Conteineres no Microsoft Azure
Conteineres no Microsoft AzureConteineres no Microsoft Azure
Conteineres no Microsoft AzureFabio Hara
 
MySQL: o banco de dados open source mais popular do mundo
MySQL: o banco de dados open source mais popular do mundoMySQL: o banco de dados open source mais popular do mundo
MySQL: o banco de dados open source mais popular do mundoMySQL Brasil
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosJoão Helis Bernardo
 
Cloud Computing: Desafios de Arquiteturas multitenantes e o Caso Salesforce
Cloud Computing: Desafios de Arquiteturas multitenantes e o Caso SalesforceCloud Computing: Desafios de Arquiteturas multitenantes e o Caso Salesforce
Cloud Computing: Desafios de Arquiteturas multitenantes e o Caso SalesforceFernando Carvalho
 
RDBMS x NoSQL x NewSQL
RDBMS x NoSQL x NewSQLRDBMS x NoSQL x NewSQL
RDBMS x NoSQL x NewSQLOrlando Vitali
 
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBBancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBPaulo Bischof
 
Por que computação em nuvem?
Por que computação em nuvem?Por que computação em nuvem?
Por que computação em nuvem?Dervanil Junior
 
Transformando seu datacenter em nuvem privada
Transformando seu datacenter em nuvem privadaTransformando seu datacenter em nuvem privada
Transformando seu datacenter em nuvem privadaJuscélio Reis
 
Migrando Aplicações para o SQL Azure Database
Migrando Aplicações para o SQL Azure DatabaseMigrando Aplicações para o SQL Azure Database
Migrando Aplicações para o SQL Azure DatabaseRoberto Fonseca
 
Cloud Day III - Modelos de licenciamento para parceiros com Windows Azure
Cloud Day III - Modelos de licenciamento para parceiros com Windows AzureCloud Day III - Modelos de licenciamento para parceiros com Windows Azure
Cloud Day III - Modelos de licenciamento para parceiros com Windows AzureLuciano Condé
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosAricelio Souza
 
Windows Server 2016, System Center 2016 e OMS
Windows Server 2016, System Center 2016 e OMSWindows Server 2016, System Center 2016 e OMS
Windows Server 2016, System Center 2016 e OMSFabio Hara
 
Quintas da ti 2014 System Center 2012 R2 Jump Start
Quintas da ti 2014 System Center 2012 R2 Jump StartQuintas da ti 2014 System Center 2012 R2 Jump Start
Quintas da ti 2014 System Center 2012 R2 Jump StartDaniel Donda - MVP
 
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQLRecursos e Benefícios do MySQL
Recursos e Benefícios do MySQLMySQL Brasil
 
Transição para a nuvem: Desafios e Estratégias
Transição para a nuvem: Desafios e EstratégiasTransição para a nuvem: Desafios e Estratégias
Transição para a nuvem: Desafios e EstratégiasDenodo
 
Azure Stack | Visão Geral
Azure Stack | Visão GeralAzure Stack | Visão Geral
Azure Stack | Visão GeralFabio Hara
 
Reduza seu trabalho de gerenciamento do kubernetes tdc 2018 poa
Reduza seu trabalho de gerenciamento do kubernetes   tdc 2018 poaReduza seu trabalho de gerenciamento do kubernetes   tdc 2018 poa
Reduza seu trabalho de gerenciamento do kubernetes tdc 2018 poaFabio Hara
 

Tendances (20)

Conteineres no Microsoft Azure
Conteineres no Microsoft AzureConteineres no Microsoft Azure
Conteineres no Microsoft Azure
 
MySQL: o banco de dados open source mais popular do mundo
MySQL: o banco de dados open source mais popular do mundoMySQL: o banco de dados open source mais popular do mundo
MySQL: o banco de dados open source mais popular do mundo
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
 
Cloud Computing: Desafios de Arquiteturas multitenantes e o Caso Salesforce
Cloud Computing: Desafios de Arquiteturas multitenantes e o Caso SalesforceCloud Computing: Desafios de Arquiteturas multitenantes e o Caso Salesforce
Cloud Computing: Desafios de Arquiteturas multitenantes e o Caso Salesforce
 
RDBMS x NoSQL x NewSQL
RDBMS x NoSQL x NewSQLRDBMS x NoSQL x NewSQL
RDBMS x NoSQL x NewSQL
 
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBBancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDB
 
Por que computação em nuvem?
Por que computação em nuvem?Por que computação em nuvem?
Por que computação em nuvem?
 
Transformando seu datacenter em nuvem privada
Transformando seu datacenter em nuvem privadaTransformando seu datacenter em nuvem privada
Transformando seu datacenter em nuvem privada
 
Migrando Aplicações para o SQL Azure Database
Migrando Aplicações para o SQL Azure DatabaseMigrando Aplicações para o SQL Azure Database
Migrando Aplicações para o SQL Azure Database
 
Cloud Day III - Modelos de licenciamento para parceiros com Windows Azure
Cloud Day III - Modelos de licenciamento para parceiros com Windows AzureCloud Day III - Modelos de licenciamento para parceiros com Windows Azure
Cloud Day III - Modelos de licenciamento para parceiros com Windows Azure
 
3 Telas e uma nuvem
3 Telas e uma nuvem3 Telas e uma nuvem
3 Telas e uma nuvem
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplos
 
DynamoDB - Uma Introdução
DynamoDB - Uma IntroduçãoDynamoDB - Uma Introdução
DynamoDB - Uma Introdução
 
Windows Server 2016, System Center 2016 e OMS
Windows Server 2016, System Center 2016 e OMSWindows Server 2016, System Center 2016 e OMS
Windows Server 2016, System Center 2016 e OMS
 
Apresentação do Curso
Apresentação do CursoApresentação do Curso
Apresentação do Curso
 
Quintas da ti 2014 System Center 2012 R2 Jump Start
Quintas da ti 2014 System Center 2012 R2 Jump StartQuintas da ti 2014 System Center 2012 R2 Jump Start
Quintas da ti 2014 System Center 2012 R2 Jump Start
 
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQLRecursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
 
Transição para a nuvem: Desafios e Estratégias
Transição para a nuvem: Desafios e EstratégiasTransição para a nuvem: Desafios e Estratégias
Transição para a nuvem: Desafios e Estratégias
 
Azure Stack | Visão Geral
Azure Stack | Visão GeralAzure Stack | Visão Geral
Azure Stack | Visão Geral
 
Reduza seu trabalho de gerenciamento do kubernetes tdc 2018 poa
Reduza seu trabalho de gerenciamento do kubernetes   tdc 2018 poaReduza seu trabalho de gerenciamento do kubernetes   tdc 2018 poa
Reduza seu trabalho de gerenciamento do kubernetes tdc 2018 poa
 

Similaire à NoSQL: Arquitetura, Modelos de Dados e Trade-offs de Desempenho

NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
Modelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaModelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaGlaucio Scheibel
 
MySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicaçõesMySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicaçõesMySQL Brasil
 
Devops: Gestão e publicação de Dados no SQL Server
Devops: Gestão e publicação de Dados no SQL ServerDevops: Gestão e publicação de Dados no SQL Server
Devops: Gestão e publicação de Dados no SQL ServerIgor Rosa Macedo
 
Introdução ao Nosql
Introdução ao NosqlIntrodução ao Nosql
Introdução ao NosqlJosé Silva
 
17h30 aws-databases-summit
17h30   aws-databases-summit17h30   aws-databases-summit
17h30 aws-databases-summitinfolive
 
SQL Server 2012
SQL Server 2012SQL Server 2012
SQL Server 2012Hcode
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infosimples
 
[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQLCleber Dantas
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaAugusto Giles
 

Similaire à NoSQL: Arquitetura, Modelos de Dados e Trade-offs de Desempenho (20)

NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
Artigo Nosql
Artigo NosqlArtigo Nosql
Artigo Nosql
 
Trabalho de sgbd
Trabalho de sgbdTrabalho de sgbd
Trabalho de sgbd
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
CosmosDB from zero2hero
CosmosDB from zero2heroCosmosDB from zero2hero
CosmosDB from zero2hero
 
Modelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaModelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência Poliglota
 
MySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicaçõesMySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicações
 
No sql
No sqlNo sql
No sql
 
Devops: Gestão e publicação de Dados no SQL Server
Devops: Gestão e publicação de Dados no SQL ServerDevops: Gestão e publicação de Dados no SQL Server
Devops: Gestão e publicação de Dados no SQL Server
 
Introdução ao Nosql
Introdução ao NosqlIntrodução ao Nosql
Introdução ao Nosql
 
17h30 aws-databases-summit
17h30   aws-databases-summit17h30   aws-databases-summit
17h30 aws-databases-summit
 
SQL Server 2012
SQL Server 2012SQL Server 2012
SQL Server 2012
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)
 
[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL
 
NOSQL - Uma real alternativa
NOSQL - Uma real alternativaNOSQL - Uma real alternativa
NOSQL - Uma real alternativa
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Bancos de Dados na AWS
Bancos de Dados na AWSBancos de Dados na AWS
Bancos de Dados na AWS
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas Monografia
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 

NoSQL: Arquitetura, Modelos de Dados e Trade-offs de Desempenho