Conceito de NewSQL e a realidade com NuoDB

Olá pessoal, hoje o objetivo é conhecer uma base de dados NewSQL que se chama NuoDB.

Vamos lá?

O surgimento do NewSQL

O NewSQL é um termo criado pelo group451 em 2011. O objetivo foi manter as características do NoSQL sem perder os atributos de uma base de dados relacional. A busca por esse equilíbrio começou para unir dois mundos distantes, onde o banco de dados relacional é mais tradicional e conhecido, muito difundido, certamente a muitos anos vem sendo a primeira opção quando falamos em banco de dados, justamente por ser muito difundido.

Já o NoSQL, que significa “Not SQL Only” onde a ideia é não utilizar apenas SQL para todos os problemas, é uma solução escalável, performática e de alta disponibilidade para o armazenamento de uma grande quantidade de dados (big data), área onde o banco de dados relacional vem falhando e busca o aprimoramento. O NoSQL vem alcançando um grupo grande de desenvolvedores atualmente, mas nem sempre é uma tarefa fácil a adesão de bases NoSQL justamente por exigir capacitação dos usuários já que as bases de dados não tem uma linguagem “padrão” ao estilo SQL das bases de dados relacionais. Até pouco tempo as bases de dados NoSQL não garantiam a integridade dos dados (ACID), o que também gerava desconfiança no momento da adesão. É neste cenário que o group451 teve a ideia de pegar o melhor dos dois mundos e criar o Newsql.

É sempre bom lembrar: “Use a ferramenta certa para o trabalho”. Não conhece essa frase? Acesse o nosso post sobre NoSQL e descubra.

Características

Veja abaixo as principais características herdadas do banco de dados relacional e do NoSQL para criação do NewSQL:

1)      Utilização de SQL como linguem padrão para manipulação de dados

2)      Persistência do tipo ACID

3)      Replicação de dados entre os nós do cluster para garantir a persistência

4)      Um isolation level diferente do banco de dados relacional, com muito menos locking.

5)      Diferente das tecnologias atuais de cluster, o NewSQL tem uma arquitetura que proporciona um desempenho muito superior por nó, além da capacidade de funcionar com diversos nós simultaneamente sem gargalos.

6)      O uso elevado da memória para garantir a velocidade das bases NoSQL.

Com estas características o NewSQL é uma solução robusta e flexível, adaptada as novas necessidades das aplicações que precisam manipular e consultar uma grande quantidade de dados instantaneamente.

NuoDB

1

O NuoDB é uma base de dados proprietária do tipo NewSQL. Tem como características a linguagem de SQL query, e muitas vantagens como escalabilidade, performance e persistência dos dados do tipo ACID. Veja abaixo as características mais marcantes desta verdadeira base de dados projetado para utilização em nuvem.

O Dimensionamento sob demanda permite adicionar novas máquinas a um cluster de máquinas NuoDB de forma fácil, isso com custos de hardware e software muito inferiores aos das bases de dados relacionais tradicionais. Ele permite dezenas de máquinas lógicas respondendo a uma única base de dados, que podem estar em qualquer lugar do mundo que tenha um link de internet, onde os dados podem ser sincronizados com a garantia de persistência.

4

Tudo isso em ambientes que podem ser heterogêneos. Possibilitar o uso de bases de dados distribuídas também é uma grande vantagem quando pensamos na latência que é uma grande inimiga da performance das aplicações que precisam trafegar seus dados em links até chegar a base de dados. Com NuoDB e suas bases geo-distribuídas e o efeito da latência esse efeito é minimizado já que a replicação dos dados é robusta.

Arquitetura

Tudo isso só é possível pois a arquitetura desta base de dados funciona em três camadas, a camada administrativa, uma camada transacional e um nível de armazenamento.

5

A camada administrativa garante a escalabilidade através do balanceamento de carga, fornecendo agentes que possibilitam o gerenciamento remoto, recebimento de requisições e realizar funções administrativas como iniciar a base de dados ou gerar logs. A camada transacional é a responsável por garantir o bom funcionamento das propriedades ACID (Atomicidade, consistência, isolamento), deixando a durabilidade para ser garantida pela camada de armazenamento. Já a camada de armazenamento possui agentes responsáveis por gerenciar um espaço de disco especifico, que se trata de uma cópia da base de dados local, aguardando comandos da camada de transação para persistir.

Com essa arquitetura a disponibilidade contínua é outra forte característica das bases de dados NuoDB, já que a replicação constante dos dados possibilita em um ambiente de cluster, caso ocorra falha em algum nó, os outros nodos podem assumir sem quaisquer problemas e de forma transparente para o usuário.

O NuoDB possui também uma interface web de administração muito usual onde o usuário pode facilmente monitorar todas as bases de dados de sua escolha utilizando um Dashboard personalizado, possibilita ainda a criação de regras para que, por exemplo, no caso de indisponibilidade de um nodo, outro nodo seja iniciado, com poucas configurações. Além de simplificar muito a criação de novos bancos de dados.

Com todas estas vantagens o NuoDB ainda faz consultas do tipo SQL. Isso é um grande diferencial, pois não é necessário um grande investimento em capacitação e também não é necessário rescrever todas a queries para migrar parte de uma aplicação para NuoDB.

Como Instalar

Para realizar a instalação do NuoDB será necessário realizar o download, que pode ser feito no próprio site onde estão disponíveis instaladores todas as plataformas. Basta seguir um simples wizard para instalar. Após a instalação basta acessar link  http://localhost:8080/ e será exibida a interface de administração abaixo.

6

Abaixo a relação de portas do sistema operacional que serão utilizadas por padrão:

Porta Utilização
8080 Ferramenta de gerenciamento web
8888 Servidor HTTP recebe as solicitações de serviços
8889 Servidor HTTP recebe pedidos administrativos
48004 e 48005+ Utilizadas pelo motor do NuoDB para transações internas

Formas de comunicação e linguagens suportadas

O NuoDB possui uma ótima documentação com relação a comunicação do banco de dados com as linguagens de programação.

Para realizar a conexão com a base de dados é preciso obter os drivers, e o NuoDB dispõe os seguintes drivers:

  • JDBC, um arquivo com extensão jar, para conexão com a base de dados, utilizado na linguagem de programação Java.
  • Hibernate, semelhante ao JDBC, mas é focado no Hibernate (framework de desenvolvimento Java)
  • ODBC, permite a conecção com diversas linguagens, como: C++, Delphi, Visual Basic, entre outras.
  • UnixODBC, semelhante ao ODBC, mas voltado a sistemas operacionais baseados em UNIX.
  • .NET, driver escrito em C# para conecção com a base de dados.
  • PHP PDO, arquivo para configuração na linguagem PHP.

Mesmo com a gama de drivers disponíveis pelo NuoDB, a comunidade criou outros drivers para adequar a plataformas, como: Node.js, PHP, SilverStripe, Ruby, Python, Drupal, GO e Perl.

No momento da instalação da aplicação é possível instalar exemplos de uso do banco de dados, os exemplos estão disponíveis nas seguintes linguagens: C++, Java, JRuby e Java utilizando o framework Hibernate.

Se chegou até aqui, você está pronto para explorar o mundo NewSQL e o NuoDB.

Obrigado e até a próxima.

The following two tabs change content below.

Raphael Krauss

Software Engineer
Com mais de 10 anos de experiência em desenvolvimento e suporte a aplicações, atua na empresa Softplan como analista de suporte ao desenvolvimento, trabalhando com a manutenção dos frameworks de desenvolvimento básicos. Com conhecimento em Delphi, Java, Jsp, Servlets, Hibernate, mobile Android e também as bases de dados Oracle, SQLServer, Db2, MySQL, PostgreSQL. Especializado em análise de desempenho e técnicas de monitoramento de aplicações. Atuando em projetos com metodologias ágeis como Scrum, XP e utilizando boas praticas como Clean code e Design patterns. Também possui experiência em gerenciamento de ambientes de integração contínua (Controle de versão, Build continuo e ferramentas para análise estática de código).

Latest posts by Raphael Krauss (see all)

Sobre Raphael Krauss

Com mais de 10 anos de experiência em desenvolvimento e suporte a aplicações, atua na empresa Softplan como analista de suporte ao desenvolvimento, trabalhando com a manutenção dos frameworks de desenvolvimento básicos. Com conhecimento em Delphi, Java, Jsp, Servlets, Hibernate, mobile Android e também as bases de dados Oracle, SQLServer, Db2, MySQL, PostgreSQL. Especializado em análise de desempenho e técnicas de monitoramento de aplicações. Atuando em projetos com metodologias ágeis como Scrum, XP e utilizando boas praticas como Clean code e Design patterns. Também possui experiência em gerenciamento de ambientes de integração contínua (Controle de versão, Build continuo e ferramentas para análise estática de código).

Deixe uma resposta