segunda-feira, 4 de julho de 2011

#FISL 12: SQL, NoSQL, NewSQL



Uma das palestras mais legais deste ano foi, sem dúvida, a do Alexandre Porcelli (@porcelli) sobre SQL, NoSQL e NewSQL.
Numa apresentação muito bem feita (visualmente), e com uma didática muito boa, ele explicou as principais características dos bancos NoSQL.
  • Armazenar dados pensando em facilitar a leitura e não em economizar espaço (desnormalização);
  • Armazenamento chave-valor;
  • Modelos
    • Família de colunas - Big Table da Google (hashmaps aninhados, garante maior escalabilidade);
    • Orientado a documento (JSON - sem esquema pré-definido, mais flexível) - finalmente aprendi o que é o tal de json!
    • Grafos - nós e relacionamentos, muito usado em redes sociais;
  • Consistêncai eventual - significa que o banco vai estar consistente em algum momento, e não que o mesmo fica inconsistente indefinidamente! A "janela de inconsistência", segundo ele, é geralmente em torno de 500 ms;
  • ACID x BASE - brincadeira com as garantias dos bancos tradicionais;
  • Dados em constante modificação - idéia de fluxo;
  • Armazenamento de dados em memória ao invés de disco
    • Garante a velocidade necessária no acesso para determinadas aplicações;
    • Replicação + distribuição para evitar SPOF e garantir durabilidade dos dados (ACID);
  • Fusão entre apps e dados - hoje há uma linha tênue, segundo ele, separando as aplicações dos dados que acessam;
    • Este cenário implica na mudança de perfil dos desenvolvedores - surge o devops (mistura de desenvolvedor e DBA);
  • ORM - mapeamento objeto-relacional (overhead) é um problema para grandes aplicações;

Como se pode observar a partir da comparação das duas imagens acima, o NewSQL é o resultado do aproveitamento do que há de melhor no mundo SQL e NoSQL. Seria esse o caminho que o MySQL estaria trilhando ? Vamos aguardar os acontecimentos.

Uma curiosidade que ele mencionou foi o fato de que o Twitter não previa uso de hashtags, e foi necessária uma mudança grande na aplicação para viabilizar seu uso, requerendo bastante flexibilidade e velocidade no acesso aos dados.

Outro ponto interessante foi a menção ao Drizzle, um fork do MySQL que o "transforma" num banco NoSQL.

Leitura recomendada (fonte de diversas informações da palestra): "The End of an Architectural Era" - Michael Stonebraker.

Siga-nos no Twitter! ou Buzz
Receba os textos via e-mail ou RSS!
Confira outros textos sobre o tema!

Nenhum comentário:

Postar um comentário