Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
-
Upload
orlando-vitali -
Category
Software
-
view
498 -
download
5
Transcript of Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
ESTUDO COMPARATIVO ENTRE BANCO DE DADOS RELACIONAIS, NOSQL E NEWSQL
Acadêmico: Orlando Vitali WernerOrientador: Gustavo Bisognim
Estrutura
• Introdução
• Objetivo geral
• Objetivos específicos
• Fundamentação teórica
• Metodologia
• Comparação entre modelos de bancos de dados
• Conclusão
Introdução• Modelos de dados, bancos relacionais e NoSQL;
• NewSQL, conceito de bancos de dados recente ainda com poucos estudos ;
• Comparar NewSQL com as tecnologias relacionais e NoSQL;
• Quais as vantagens e desvantagens de cada um dos modelos de bancos de dados.
Objetivo geral
• Gerar uma base de conhecimento sobre cada um dos modelos de bancos de dados na teoria e na pratica, avaliando suas características notando os pós e contras de cada modelo a fim de facilitar a identificação de qual o modelo de dados ideal para cada situação.
Objetivos específicos• Analisar a fundamentação teórica por trás dos bancos de dados e seus
modelos;
• Comparar diretamente características de cada banco de dados, permitindo visualizar as principais diferenças entre cada modelo;
• Verificar na pratica o comportamento de cada modelo de bancos de dados, avaliando suas usabilidades, facilidades de uso e desempenhos;
• Conhecer métodos de avaliação de bancos de dados e em que casos devem-se basear nesses métodos ao escolher um SGBD;
• Ampliar os conhecimentos técnicos e teóricos sobre o modelo NewSQL, por ser um modelo recente e que une características de dois modelos distintos de bancos de dados, criando uma base de conhecimento para pesquisas futuras.
Fundamentação teórica • O que são bancos de dados
– Sistemas de gerenciamentos de bancos de dados e Modelos de dados
• Modelos de rede e hierárquico• Modelo relacional, E/R e orientados a objetos
Modelo de dados de rede
Modelo de dados hierárquico
Fundamentação teórica - RDBMS
– Estruturado, SQL, ACID (Atomicidade, Consistência, Disponibilidade, Durabilidade).
número_conta nome_agência saldoA-101 Downtown 500A-102 Perryridge 400A-201 Brighton 900A-215 Mianus 700A-217 Brighton 750A-222 Redwood 700A-305 Round Hill 350
Fundamentação teórica - NoSQL
• Chave-valor, orientado a colunas, orientado a documentos;
• Consistência eventual, Teorema CAP (Consistency,
Availability, Partitions tolerance);
• Bancos distribuídos e de alto desempenho.
Chave-valor Orientado a documentos
Fundamentação teórica - NewSQL
• Bancos de dados relacionais com suporte a SQL, ACID;
• Bancos distribuídos e de alto desempenho;
• Características de bancos relacionais e de bancos NoSQL.
MetodologiaComparação de características
• Levantar características gerais de SGBDs atuais independentes do modelo;
• Determinar bancos de dados de cada modelo a ser avaliado;
• Montar matriz de comparação Características/Modelo de banco.
Avaliação pratica RDBMS x NewSQL e NoSQL x NewSQL• Determinar o tipo de avaliação
pratica;
• Instalar bancos de dados e montar os cenários de testes;
• Executar testes;
• Gerar gráficos de com os resultados obtidos nos testes.
Comparação de características RDBMS NewSQL NoSQL MySQL PostgreSQL NuoDB MySQL Cluster MongoDB Cassandra
Conceitos de transações (ACID) ACID ACID ACID ACIDAtomicidade em
operações em apenas um documento
Atomicidade e Isolamento são suportados em algumas operações
Linguagem de consulta, definição e manipulação SQL SQL SQL SQL Própria CQL
Método de partição Não possui Não possuiDados dinamicamente alocados nos nós de
leitura e escrita
Particionamento horizontal (Sharding)
Particionamento horizontal (Sharding)
Particionamento horizontal (Sharding)
Método de replicação Mestre-escravo Mestre-escravoGerenciado de forma
transparente pelo SGBD
Mestre-escravo Mestre-escravo De acordo com a
estratégia configurada e do fator de replicação
Índices Possui Possui Possui Possui Possui RestritoSchema Possui Possui Possui Possui Livre LivreStore Procedures/Triggers Possui Possui Possui Possui Não possui PossuiChaves Possui Possui Possui Possui Não possui Não possui
Método de armazenamento Relacional Relacional Relacional Relacional Documento Orientado a colunas
Disponibilidade Baixa Baixa Alta Alta Alta AltaTolerância a Partição Fraca Fraca Forte Forte Forte Forte
Atomicidade Possui Possui Possui Possui Operações em apenas um documento Em operações singulares
Consistência Possui Possui Possui Possui Consistência eventual ou imediata
Consistência eventual ou imediata
Isolamento Possui Possui Possui Possui Manual Em operações singulares
CAP CA CA CAP CAP AP APDurabilidade Possui Possui Opcional Possui Opcional PossuiTipagem Forte Forte Forte Forte Fraca FracaControle de concorrência Possui Possui Possui Possui Possui Possui
Avaliação pratica
• Originalmente foi proposto desenvolver os testes em uma aplicação web;
• Foram selecionados 2 benchmarks já consolidados, TPC-C e YCSB para aferir mais segurança e veracidade aos testes;
Avaliação pratica – TPC-C• O TPC-C é um teste de carga que simula um sistema de vendas
com controle de estoque e faturamento;
• O desempenho do banco é medido de acordo com a quantidade de novos pedidos feitos dentro de um período de tempo;
• Tipo de transações executas: Pedido, Pagamento, Entrega, Verificação de estoque, Verificação de situação do pedido.
Avaliação pratica – YCSB• Yahoo! Cloud Serving Benchmark. Uma coletanea de micro-benchmarks para
bancos distribuidos;
• Possui 6 testes básicos:– Leitura e escrita;
– Maioria leitura;
– Somente leitura;
– Leitura dos ultimos;
– Intervalos;
– Leitura, alteração e escrita.
• Nos testes realizados, utilizamos o teste de Maioria leitura, por se tratar de um teste que representa, de maneira genérica, a usabilidade dos bancos distribuídos atualmente.
Avaliação pratica – TPC-C
Resultados dos testes com um nó• Rendimento mínimo: 2,689
req/sec com 1 conexão com o NuoDB;
• Rendimento máximo: 362,181 req/sec com 100 conexões com o MySQL Cluster;
• Latência Mínima: 99,818 µs com 1 conexão com o MySQL Cluster;
• Latencia Máxima: 12194,666 com 100 conexões com o MySQL.
Avaliação pratica – TPC-CResultados dos testes com 2 nós para bancos NewSQL• Com 2 nós o desempenho do
MySQL Cluster caiu consideravelmente;
• O NuoDB manteve basicamente o mesmo desempenho;
Avaliação pratica – YCSB - NuoDB
Rendimento Latência• Mínimo : 8,664 ops/sec com 2 nós e 1
conexão;
• Máximo : 146,806 ops/sec com 1 nó e 10 conexões.
• Mínima : 19345,647 µs com 1 nó e 1 conexão;
• Máxima : 2035480,460 µs com 2 nó e 100 conexões;
Avaliação pratica – YCSB – MySQL Cluster
Rendimento Latência• Mínimo : 28,958 ops/sec com 2 nós e
1 conexão;
• Máximo : 1346,463 ops/sec com 1 nó e 100 conexões.
• Mínima : 8461,893 µs com 1 nó e 10 conexões;
• Máxima : 1498996,231 µs com 2 nó e 100 conexões;
Avaliação pratica – YCSB - Cassandra
Rendimento Latência• Mínimo : 67,476 ops/sec com 1 nós e
1 conexão;
• Máximo : 15703,050 ops/sec com 2 nó e 100 conexões.
• Mínima : 581,583 µs com 2 nós e 10 conexões;
• Máxima : 19345,647 µs com 2 nó e 1 conexão;
Avaliação pratica – YCSB - MongoDB
Rendimento Latência• Mínimo : 1823,227 ops/sec com 1 nós
e 1 conexão;
• Máximo : 23959,048 ops/sec com 2 nó e 10 conexões.
• Mínima : 93,397 µs com 2 nós e 1 conexão;
• Máxima : 4678,874 µs com 2 nó e 100 conexões;
Limitações
• Tempo de execução dos testes limitados a apenas 1 minuto por teste;
• Hardware utilizado é de uso pessoal e com discrepância de desempenho;
• Quantidade de nós utilizados nós cluster consideravelmente baixo.
Conclusão• Modelos de bancos distintos e com propósitos diferentes;
• Assim como os bancos NoSQL, os bancos relacionais continuam evoluindo;
• Existe uma maior dependência do mercado por bancos distribuídos, porém o mercado não está pronto pra abrir mão dos bancos relacionais;
• Bancos NewSQL ainda são novos e imaturos, carecem de recursos e APIs ainda;
• Existe uma tendência de crescimento do modelo NewSQL e transformações de bancos RDBMS comuns em bancos NewSQL.
Obrigado!