Total de visualizações de página

sábado, 27 de fevereiro de 2010

Bancos de dados nas nuvens-NOSQL

Uma nova forma de armazenamento de dados se estabeleceu nas Nuvens. Nuvem, aqui, bem explicado, é a Cloud, conceito maior com que se denomina a grande Internet, composta de milhões de usuários e de máquinas, e que tem uma conformação tão mutável e dinâmica, como as próprias. Os grandes players desse ambiente são aquelas empresas que tem "business" centrado na manipulação de grandes volumes de dados(barreira dos peta e exa bytes), como Google, Amazon, Facebook,etc. Esses sites, com propósitos diferentes, de máquina de busca a vendas de livros, chegando às redes sociais, manipulam grandes bases de dados, mas tem uma grande preocupação que é a disponibilidade de seus serviços, vital para atender os milhões de clientes que circulam por suas prateleiras e corredores virtuais a cada segundo. Na medida em que esse ambiente foi se delineando , observou-se que os SGBD´s tradicionais, os velhos, poderosos e conhecidos BD como Oracle, SQL-Server,DB2, Sybase, etc não se encaixavam diretamente nas necessidades transacionais desse novo cenário. A idéia seminal é a seguinte: um ambiente que atende a muitos milhões de clientes, espalhados geograficamente pelo planeta, deverá ser composto por uma esquadrilha de servidores de dados e de transações espalhados pela nuvem e não mais aplicar o paradigma da centralização de dados, transações e de storage, foco genético daqueles SGBD. Assim, foi desenhada uma nova proposta de sistemas de armazenamento, que regrediram em certo sentido, para se adaptar ao objetivo maior que é a disponibilidade. O conceito fundamental de ACID(atomicidade,consistência,isolamento e durabilidade) teve que ser revisto de forma a ajustar a esse novo cenário. Os aspectos estruturais de dados montados na forma de tabelas relacionais clássicas também foi alterado. Ou seja, o que serve muito bem para os milhões de bancos de dados que habitam os Datacenters que conhecemos, não se ajusta adequadamente ao processamento na nuvem. A ideía central dessa arquitetura começa pela ampla replicação de dados, visando distribuí-los por entre milhares e milhares de servidores, de forma a minimizar os aspectos de performance, e principalmente, de disponibilidade. Uma cópia de dados, habitando um nó momentaneamente fora do ar, tem várias réplicas disponíveis em outras milhares de máquinas. E não é dificil imaginar o que representa um flagrante de indisponibilidade num cenário de milhões de máquinas, com milhões de links de comunicação. Downtime, máquinas fora do ar, links quebrados, etc. Isso acontece a todo tempo. Dai a estratégia de replicação. Mas os SGBD´s tradicionais não oferecem soluções de replicação?. Sim, oferecem, mas não para um ambiente com tal complexidade, envolvendo milhões de nós e links. Além disso, as soluções de replicação desses SGBD, com estilos síncronos colocavam em jogo um protocolo de garantia de integridade, chamado 2PC(two phase commit) que definia rigores não condizentes com um cenário de alto volume de processamento e de dados. Assim, as soluções escritas por Amazon, Google, Facebook, etc partiram para criar conceitos transacionais próprios, onde, repito, a disponibilidade sobrepujava a integridade (momentânea) dos dados. A integridade, normalmente é acertada a posteriori, por mecanismos assícronos, mas isso em back-ground, não afetando o elemento maior, a disponibilidade do carrinho de compras, por exemplo. Com relação à estrutura de dados, também foram buscados novos conceitos. As tabelas relacionais, rigidamente definidas por conceitos de normalização, não resistiriam a esse novo ambiente de alta voltagem. Estruturas variadas foram pensadas na busca da simplificação. Uma delas é simples como o capim: a estrutura central das informações é montada por pares campo-valor, ou seja a unidade é formada de algo, como data-vencimento.22/10/2009. Esses pares de dados e metadados são agrupados em unidades maiores que também trouxeram uma novidade. Em função das característica de buscas intensivas nesse ambiente, algumas soluções trouxeram a estrutura colunar, ou seja os dados são agrupados por colunas e não por linhas, como no velho e indivisível Relacional.Isso agrega, cola e avizinha todos os campos de mesmo domínio, facilitando as sua manipulação. Todas as estruturas trazem a informação da entidade, uma chave identificadora e os atributos distribuídos, como por exemplo filme.215.o fim da escuridão. seguido de filme.220.guerra ao terror, etc, grudadinhos na mesma tupla. Esse agrupamento por colunas implica um altíssimo grau de compactação, devido à proximidade de dados do mesmo domínio. Outras soluções, como a BigTable(Google), introduzem o conceito dimensional nessas estruturas,acoplando a estampa de tempo nessa família de colunas e valores. E quais são os grandes players desses BD das nuvens?. São, justamente, aqueles que tiveram que pensar em soluções para os seus negócios e criaram domesticamente algo para resolver seus problemas: A Google desenvolveu o BigTable, a Amazon tem o Dynamo, a Fundação Apache tem o CouchDB e existem tantos outros. Todos eles têm suas próprias concepções transacionais e de armazenamento, quase sempre fugindo do paradigma puro do ACID e da estruturação relacional clássica. Todos adotam propostas que privilegiam a disponibilidade com relação a integridade síncrona. Entretanto isso não significa a morte dos nossos tradicionais SGBD, como conhecemos e aprendemos. Eles continuarão intrépidos e altivos nos ambientes tradicionais que não demandam esses volumes de usuários, transações, servidores, replicações, de altíssima voltagem. Mas deverão, num espaço de tempo, não muito distante, se adequarem aos novos conceitos, oferecendo "features" que essa nova classe de usuários (os da nuvem) demandam nos seus business, sem o que se arriscam a sentir o cheiro da poeira dos que estão à sua frente.

5 comentários:

  1. Olá Barbi meu nome é Walter sou aluno do curso de Sistema de informação estou terminando meu curso e escolhi para meu TCC o tema banco de dados nas nuvens por achar o tem interessante se vc tiver mais conteúdo de banco de dados nas nuvens e computação em nuvens poder me mandar te agradeço.
    e-mail: instrutorpardal@yahoo.com.br

    ResponderExcluir
  2. Estou cursando uma especialização em Bancos de dados e gostaria de saber se vocês tem algum material mais amplo sobre bancos de dados nas nuvens. Pois é o tema que planejo para minha conclusão da especialização.

    E-mail:igor.alvez@gmail.com

    desde já agradeço.

    ResponderExcluir
  3. Olá Barbi meu nome é mauricio e estou pra defender um trabalho em sala de aula com o assunto Banco de dados em nuvens, pouco encontrei na net e o que encontrei está totalmente em inglês (traduzindo), gostaria que se você tivesse mais material pudesse enviar: mowreco@hotmail.com.

    Agradeço...

    ResponderExcluir
  4. Caro Maurício, bom dia. Você deve procurar por Haddop/Mapreduce, Hive, Cloudera, etc que são nomes associados a esses conceitos de BD, sob essa nova forma. Na dúvida, retorne. Abs CB

    ResponderExcluir
  5. Bom dia, estou cursando graduação em Banco de Dados e estou querendo fazer meu Projeto de Pesquisa sobre Banco de Dados nas nuvens, gostaria de saber onde encontro material mais detalhado?

    Parabéns pelo Blog.

    ResponderExcluir