NewSQL
Wellington 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 Geral
NuoDB é 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.
Arquitetura
O 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 processamento
O 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 armazenamento
O 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 administrativo
O 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 NuoDB
Sã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
Arquitetura
O 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 Tabela
Quanto à 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ência
Para 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 consultas
As 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

Apresentação new sql

  • 1.
  • 2.
    Como Surgiu ? BancosIMS-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.
  • 3.
    Características ● Linguagem SQLcomo 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.
  • 4.
    Características Diferente dos SGBDRtradicionais, 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.
  • 5.
    SGBD NuoDB Visão Geral NuoDBé 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. Arquitetura O 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.
  • 6.
    SGBD NuoDB ● Estruturaem 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
  • 7.
    SGBD NuoDB Nível deprocessamento O 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.
  • 8.
    SGBD NuoDB Nível dearmazenamento O 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.
  • 9.
    SGBD NuoDB Nível administrativo Oní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.
  • 10.
  • 11.
    SGBD NuoDB Átomos Mesmo parecendouma 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.
  • 12.
    SGBD NuoDB Duas característicasimportantes do NuoDB Sã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.
  • 13.
    SGBD MemSQL Visão Geral OSGBD 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.
  • 14.
    SGBD MemSQL Arquitetura O MemSQLpossui 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.
  • 15.
    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.
  • 16.
    SGBD MemSQL Alocação deTabela Quanto à 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ência Para 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.
  • 17.
    SGBD MemSQL Execução deconsultas As 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.
  • 18.
    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