apresentação new sql
TRANSCRIPT
NewSQLWellington Azevedo
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.
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.
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.
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.
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
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.
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.
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.
SGBD NuoDB
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.
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.
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.
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.
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.
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.
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.
Referências
● http://go.nuodb.com/rs/nuodb/images/ Greenbook_Final.pdf.
● http://blogs.the451group.com/information_management/2011/04/06/what-we-talk-about-when-we-talk-about-newsql/
● http://go.nuodb.com/whitepaper.html
● http://www.informant.com.br/blog/2014/02/05/aprenda-a-importancia-da-escalabilidade/
● http://monografias.poli.ufrj.br/monografias/monopoli10010084.pdf