O MySQL nasceu como uma alternativa de alta-performance para armazenamento no padrão ISAM em hardware commodity, evoluiu para um banco de dados relacional ACID-compliant e hoje também incorpora recursos noSQL. Vamos revisitar esta história e entender quais os recursos noSQL presentes no banco de dados open source mais popular do mundo.
5. 198x ... 1993
• UNIREG
• camada SGBD para DIAB ISAM handler – COBOL em hardware
commodity
• Atendia requisitos DW da época
• 100k linhas com facilidade
• Desafio era atingir 2-5M linhas
• 5 anos de desenvolvimento
• portado de ABC BASIC para C
• DIAB ISAM handler descontinuado
• MyISAM
6. 1994
• Requisitos do cliente
• acesso aos dados MyISAM via Browser
• Solução
• interface SQL dos bancos de dados relacionais
• mSQL considerado pouco flexível, SyBase lento
• MySQL: pluggable storage engine architecture
8. 1995 ... 1996
• David cria MySQL License inspirado por Richard Stallman,
pai da licença GPL
• David vê vantagens modelo Open Source
• continuidade
• estensível
• MySQL AB é fundada
• TCX
• Detron
• Monty Program
9. 1997 ... 2000
• Drivers PHP, PERL, ODBC (Excel)
• MyISAM mais performático, escalável e portável
• Adoção da licença GPL
• Crescimento do ecosistema MySQL
• LAMP Stack: Suse e Red Hat
• Mais Storage Engines
• Mais clientes
10. 2001 ... 2002
versão 3.23
• MySQL Logo e website
• InnoDB Storage Engine GA
• Conectores Java
• Marten Mickos como CEO
• Escritório no Vale do Sílício
• Benchmarks da PCMag superam Oracle 9i, DB2 7.2, SQL
Server 2010, SyBase ASE 12.5
• MySQL para o mercado Enterprise
12. 2003 ... 2004
versão 4.0
Cluster
• User conferences
• Aumento de times de Engenharia e Suporte
• Parcerias Intel, Zend, JBoss
• MySQL AB compra a Alzato (venture Ericsson fundada em
2000) com seu NDB Cluster, que futuramente se tornaria
um importante produto de seu portfolio, o MySQL Cluster.
16. 2005 ... 2007
versão 5.0
• Oracle adquire Innobase OY (InnoDB) e Sleepycat Software
(BerkeleyDB)
• Nokia utiliza MySQL Cluster em produtos Telecom
• Storage Engines Comerciais
• InfoBright
• NitroEDB
• MySQL Enterprise Monitor
17. 2008 ... 2009
versão 5.1
• Sun adquire MySQL AB em jan-2008 por 1B US$
• Melhorias das funcionalidades e ferramentas Enterprise
18. 2010 ... 2011
versão 5.5
• Oracle adquire Sun Microsystems em jan-2010 por
aproximadamente 7,4B US$
• Acordo com Comunidade Européia
• Início de projetos de forks MySQL como MariaDB e Drizzle
• Melhorias significativas no produto MySQL 5.5 e
ferramentas Enterprise
25. Tecnologias de gerenciamento de dados
Usos comuns: processamento
de transações, aplicações
interativas transacionais
Pontos Fortes: formas
facilitadas de manipular registros;
consistência; tecnologia
comprovadamente robusta.
Pontos Fracos: problemas de
escalabilidade, especialmente
para Queries contra grande
volume de dados (dezenas de
Terabytes).
fonte: 451Group
26. Tecnologias de gerenciamento de dados
Usos comuns: análise de
dados históricos, data
warehousing, business
intelligence.
Pontos Fortes: suporte a
Queries rápidas especialmente
em datasets grandes e
compressão.
Pontos Fracos: não adequado
para transações, importações e
exportações rápidas; utilização
de computação pesada.
fonte: 451Group
27. Tecnologias de gerenciamento de dados
Usos comuns: usado como cache
para armazenamento de dados
requisitados frequentemente,
especialmente em aplicações web.
Pontos Fortes: escalabilidade,
armazenamento e busca de dados
muito rápidos; dados não
estruturados e parcialmente
estruturados.
Pontos Fracos: usualmente todos
os dados tem que caber em
memória rápida; falta de recursos
para Queries complexas.
fonte: 451Group
28. Tecnologias de gerenciamento de dados
Usos comuns: aplicações web ou
outras que requerem melhor
performance e escalabilidade sem
que seja necessários definir
esquemas relacionais.
Pontos Fortes: armazenamento
persistente com recursos de
escalabilidade tais como sharding
nativo; melhor suporte a Queries
que apenas chave-valor.
Pontos Fracos: falta de recursos
para Queries complexas.
fonte: 451Group
29. Tecnologias de gerenciamento de dados
Usos comuns: log em tempo-real
para aplicações web ou financeiras.
Pontos Fortes: throughput muito
alto para Big Data (de Terabytes a
Petabytes); suporte excelente à
particionamento e acesso aleatório
de leitura-escrita.
Pontos Fracos: APIs de baixo-
nível, falta de recursos para realizar
Queries complexas, alta latência na
resposta de Queries.
fonte: 451Group
30. Tecnologias de gerenciamento de dados
Usos comuns: aplicações
científicas ou de tradução
direta do paradigma orientado
a objetos.
Pontos Fortes: performance e
mapeamento natural de
objetos.
Pontos Fracos: falta de
recursos para realizar Queries
complexas.
fonte: 451Group
31. Escolha com base nos seus requisitos:
chave-valor simples com escalabilidade OU
garantias de consistência e robustez?
32. E se eu tiver AMBOS requisitos:
abordagem mista?
Implica em:
infra-estrutura extra, overhead de
administração, problemas de
compatibilidade e sincronismo...
34. MyNewSQL
Not Only SQL
powered by Memcached API
35. Memcached é...
API popular que “fala” NoSQL chave-valor
Provê alta performance, especialmente para
aplicações web diminuindo a carga do banco de
dados relacional
... usado por Twitter, Facebook, Zynga, Youtube
também suportado por Aplicações Empacotadas
populares como Joomla, Drupal e Wordpress
36. Memcached também é...
uma Hash Table GIGANTE
pode ser distribuída entre vários servidores
reside somente na RAM disponível
Last Recently Used
... realmente muito útil para alta-performance,
mas os dados não são duráveis
37. Memcached Clients normalmente contém
alguma lógica para persistir os dados
fetch from memcached
and store in a variable
If the variable is empty,
select database...
também para insert, update, delete
...esforço manual para sincronizar dados
41. Mesma infra-estrutura, recursos
NoSQL prontos para uso!
-Baixa latência, alto throughput
-Sem necessidade de implementar lógica de
persistência
-Reduz esforço de desenvolvimento e
administração
-Reuso de clientes memcached já existentes
-Compatível com drivers e bibliotecas para diversas
plataformas
42. Memcached melhorado
- transações persistentes, crash-safe & ACID
- fulltext search nos valores, Queries ricas SQL
- ferramentas de monitoramento e administração
- re-população do cache após indisponibilidade
- camada única de dados, sem duplicação
- sincronismo garantido pelo BD
- consistência acessando via SQL ou por chave
43. extra! extra!
Oracle Loader for Hadoop
Oracle NoSQL DB
Oracle BigData
como anunciado no OOW SF
44. Oracle Loader for Hadoop é...
- Um utilitário para carregar dados do Hadoop no
Oracle Database
- Útil para análises no Oracle 11G
- Utiliza processamento MapReduce para criar os
datasets
- Gera formatos nativos Oracle para carga mais
rápida e consumindo menos recursos
45. Oracle NoSQL Database é...
- Um banco de dados comercial NoSQL chave-valor
- Baseado do BerkeleyDB
- Modelo de dados dinâmico
- Altamente escalável e disponível
- Load balancing transparente
- Queries complexas suportadas via Hadoop ou
Oracle Database operando sobre o Oracle NoSQL
Database
46. Oracle BigData é...
Appliance que inclui uma distribuição open source
do Apache Hadoop
Inclui também:
-Oracle Data Integrator Application Adapter for
Hadoop;
- Oracle NoSQL Database*;
- Oracle Loader for Hadoop*;
- Oracle R Enterprise.
(*) também disponíveis separadamente
47. MySQL & Oracle NoSQL DB
MySQL & MySQL Cluster Oracle NoSQL Database
com acesso NoSQL via
memcached
• Maioria dos dados estruturados. • Dados não estruturados ou mudanças
• Necessidade de fazer consultas via frequentes de tipos e estrutura.
chave valor ou SQL no mesmo dataset. • Necessidade quase exclusiva de
• Reutilização da infraestrutura queries NoSQL, mas com a
memcached já existente com adição de possibilidade de executar queries
persistência, alta-disponibilidade e complexas via Hadoop ou Oracle DB.
escalabilidade de escrita. • Necessidade de manipular grandes
• Flexibilidade no acesso aos dados, quantidades de dados com crescimento
incluindo REST, Java, LDAP, C++. exponencial na casa de dezenas de
• Clientes que já utilizam MySQL com Terabytes ou mais.
necessidades de operações chave-valor • Necessidade de escalabilidade para
sem duplicar infra-estrutura. manipular dados através de centenas de
• Open Souce. nós.
48. Mensagens que ficam...
NoSQL é uma realidade inspiradora
A Oracle continua investindo cada vez mais
para manter o MySQL o Banco de Dados
Open Source mais popular do mundo
MySQL 5.6* e MySQL Cluster** oferecem
capacidades NoSQL interessantíssimas
*disponíves para testes em labs.mysql.com
**disponíves para download em dev.mysql.com