apresentação new sql

18
NewSQL Wellington Azevedo

Upload: wbarros

Post on 16-Aug-2015

54 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Apresentação new sql

NewSQLWellington Azevedo

Page 2: Apresentação new sql

Como Surgiu ?

Bancos IMS-DB, Paper SQL.

Os SGBD NoSQL buscam alternativas para melhorar a escalabilidade e o desempenho dos SBD atuais. No entando, isto é conseguido, em detrimento da utilização da SQL e das propriedades ACID para as transações. Para muitos, houve uma grande perda nessa troca, pois não apresentar garantias integrais para a consistência dos dados, assim como ter que recodificar métodos de acesso, não é interessante.

NewSQL visa necessidades que NoSQL faz detrimento.

Page 3: Apresentação new sql

Características

● Linguagem SQL como meio de interação entre o SGBD e a aplicação.

● Suporte para transações ACID.

● Arquitetura forneçe um maior desempenho por nó de processamento.

● Arquitetura totalmente escalável.

Page 4: Apresentação new sql

Características

Diferente dos SGBDR tradicionais, que eram considerados soluções para qualquer tipo de aplicação, os SGBD NewSQL utilizam uma estratégia diferente. Cada novo sistema desenvolvido visa atender a uma necessidade específica. Ou seja, os sistemas NewSQL tentam dividir as novas demandas em diferentes nichos de mercado e buscam alcançá-los de forma separada, terminando com o antigo conceito de ter um único sistema que sirva para qualquer tipo de aplicação.

Page 5: Apresentação new sql

SGBD NuoDB

Visão GeralNuoDB é um SGBD NewSQL em memória que tem como foco a utilização em ambientes de dados geo-distribuídos, sendo direcionado para empresas que precisam expandir suas bases de dados para múltiplos servidores mas não querem perder os benefícios da álgebra relacional e das propriedades ACID.

ArquiteturaO NuoDB possui uma arquitetura distribuída com uma abordagem de cache distribuído e durável (do inglês, durable distributed cache), baseada em replicação sob demanda (NuoDB Bloor Report, 2013). Para o NuoDB, só existe o suporte ao modo replicação total dos dados armazenados.

Page 6: Apresentação new sql

SGBD NuoDB

● Estrutura em níveis Nível de processamento Nível de armazenamento Nível administrativo

A separação entre os níveis de processamento e de armazenamento é o que busca dar escalabilidade ao sistema

Page 7: Apresentação new sql

SGBD NuoDB

Nível de processamentoO nível de processamento consiste em motores de transação, denominados de TE (do inglês, transaction engine). Esse nível é responsável por garantir as propriedades Atomicidade, Consistência e o Isolamento do ACID, deixando a durabilidade para ser garantida pelo nível de armazenamento.

Page 8: Apresentação new sql

SGBD NuoDB

Nível de armazenamentoO nível de armazenamento é responsável pela Durabilidade e também por disponibilidade. É uma fonte de dados sempre ativa e consistente. É constituído de gerentes de armazenamento, denominados de SM (do inglês, storage managers). Cada um destes SM possui acesso a um espaço em disco chamado “arquivo”, que contém uma cópia de toda a base de dados. Um SM pode servir qualquer item de dados a um TE a partir deste arquivo. Por isso, embora existam diferentes instâncias físicas da mesma base de dados, o conjunto formado por eles representam uma única instância lógica, transparente para o usuário.

Page 9: Apresentação new sql

SGBD NuoDB

Nível administrativoO nível administrativo é responsável por garantir escalabilidade horizontal por demanda e o balanceamento de carga. Cada nó possui um agente local. Juntos, os agentes formam uma rede ponto-a-ponto, que recebe o nome de Domínio (NuoDB Technical WhitePaper, 2013). Para cada domínio, existem um ou mais agentes da rede chamados brokers. Um broker é um tipo especial de agente, encarregado das funções administrativas, e somente através dos brokers é possível gerenciar (iniciar, parar ou migrar) as bases de dados, inicializar, terminar e obter os logs dos TE e dos SM e monitorar todo o sistema para saber se tudo está ocorrendo como o esperado.

Page 10: Apresentação new sql

SGBD NuoDB

Page 11: Apresentação new sql

SGBD NuoDB

Átomos Mesmo parecendo uma base de dados SQL, o mais certo ao definir o NuoDB

seria chamá-lo de uma base de dados de objetos distribuída, com uma camada SQL no topo (NuoDB Technical WhitePaper, 2013). Por trás dessa camada toda a lógica opera em objetos denominados Átomos, que são objetos autocoordenados que podem representar qualquer tipo de informação como por exemplo, dados, metadados, esquemas, índices e outras mais. Esses objetos facilitam a comunicação interna e a implementação do cache.

Page 12: Apresentação new sql

SGBD NuoDB

Duas características importantes do NuoDBSão o modo como garante escalabilidade, através da abordagem baseada em replicação sobre demanda, e por possuir uma certa elasticidade, podendo dinamicamente aumentar ou diminuir o tamanho do domínio, simplesmente adicionando ou retirando nós e processos TE e SM.

Page 13: Apresentação new sql

SGBD MemSQL

Visão Geral

O SGBD MemSQL começou a ser desenvolvido em Janeiro de 2011 por dois exfuncionários do Facebook, que imaginavam existir uma nova possível maneira de dar ao SQL escalabilidade e velocidade. O resultado foi um SGBD distribuído em memória, que é consultado através de uma interface SQL, tendo como foco aplicações transacionais, e que também apresenta capacidade para execução de análises de dados em tempo real.

Page 14: Apresentação new sql

SGBD MemSQL

ArquiteturaO MemSQL possui uma arquitetura distribuída organizada em dois níveis de nós, Agregadores e Folhas:

Agregadores trabalham como gerentes de consultas, recebendo-as e distribuindo-as entre os nós folhas. Após as consultas serem executadas pelos nós folhas, os agregadores combinam os resultados e os retornam para o usuário. Além disso, a fragmentação dos dados entre os nós folhas também é controlada pelo agregador. Os agregadores armazenam apenas metadados.

Page 15: Apresentação new sql

SGBD MemSQL

Agregador Mestre (MA) É responsável pelo monitoramento do aglomerado. Todo aglomerado precisa ter no mínimo um MA para poder ser iniciado. O agregador mestre trata de todas as operações a serem feitas no banco de dados. Todas as bases de dados, tabelas, adição e remoção de nós e rebalanceamento dos fragmentos são feitas através do agregador mestre.

Folhas possuem uma arquitetura de memória distribuída e armazenam os dados do banco. Recebem as consultas dos nós agregadores e as executam. Um nó folha não sabe da existência dos outros, pois o protocolo de controle de concorrência só atua em um nó, e não entre eles.

Page 16: Apresentação new sql

SGBD MemSQL

Alocação de TabelaQuanto à alocação de dados, o MemSQL suporta dois tipos de tabelas: as tabelas replicadas, criadas a partir do uso da expressão “REFERENCE”, e as tabelas distribuídas (fragmentadas).

Controle de ConcorrênciaPara o controle de concorrência, o MemSQL utiliza índices não bloqueantes, a fim de garantir um melhor desempenho em cenários com operações concorrentes, sem que haja uma degradação da consistência. Assim, as operações de leitura não bloqueiam as operações de escrita e vice-versa. Esta configuração favorece o uso do MemSQL em aplicações de escrita intensa, ou que tenham uma proporção semelhante para as operações de escrita e leitura.

Page 17: Apresentação new sql

SGBD MemSQL

Execução de consultasAs consultas submetidas ao MemSQL são compiladas e convertidas em códigos C++. Em seguida, são armazenadas em um cache de consultas. Quando uma nova consulta é recebida, o MemSQL verifica se já existe código C++ para ela no cache.