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