MySQL do ISAM ao noSQL Airton Lastori
Dec 13, 2014
MySQL do ISAM ao noSQL
Airton Lastori
os precursores...
Allan Larsson, Monty Widenius & David Axmark
• 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
198x ... 1993
• 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
1994
...inspirou a arquitetura como é hoje
• 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
1995 ... 1996
• 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
1997 ... 2000
• 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
2001 ... 2002
versão 3.23
...InnoDB é hoje...
• 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.
2003 ... 2004
Cluster
versão 4.0
...requisitos...
...como funciona o MySQL Cluster...
...como funciona o MySQL Cluster...
• Oracle adquire Innobase OY (InnoDB) e Sleepycat Software (BerkeleyDB)
• Nokia utiliza MySQL Cluster em produtos Telecom
• Storage Engines Comerciais
• InfoBright
• NitroEDB
• MySQL Enterprise Monitor
2005 ... 2007
versão 5.0
• Sun adquire MySQL AB em jan-2008 por 1B US$
• Melhorias das funcionalidades e ferramentas Enterprise
2008 ... 2009
versão 5.1
• 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
2010 ... 2011
versão 5.5
hoje!
hoje!
NoSQL nova escola para
gerenciamento de dados
Performance for web-based services
for Non-structured data stores and
with horizontal Scalability.
Eric Evans, 2009
fonte: 451Group
Tecnologias de gerenciamento de dados
fonte: 451Group
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
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
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
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
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
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.
Escolha com base nos seus requisitos:
chave-valor simples com escalabilidade OU garantias de consistência e robustez?
E se eu tiver AMBOS requisitos: abordagem mista? Implica em: infra-estrutura extra, overhead de administração, problemas de compatibilidade e sincronismo...
fonte: 451Group
Tecnologias de gerenciamento de dados
MyNewSQL Not Only SQL
powered by Memcached API
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
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
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
MySQL + NoSQL como é possível?
MySQL 5.6
MySQL Cluster 7.2
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
- 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
Memcached melhorado
extra! extra! Oracle Loader for Hadoop
Oracle NoSQL DB Oracle BigData
como anunciado no OOW SF
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
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
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
MySQL & Oracle NoSQL DB MySQL & MySQL Cluster com acesso NoSQL via memcached
Oracle NoSQL Database
• Maioria dos dados estruturados. • Necessidade de fazer consultas via chave valor ou SQL no mesmo dataset. • Reutilização da infraestrutura memcached já existente com adição de persistência, alta-disponibilidade e escalabilidade de escrita. • Flexibilidade no acesso aos dados, incluindo REST, Java, LDAP, C++. • Clientes que já utilizam MySQL com necessidades de operações chave-valor sem duplicar infra-estrutura. • Open Souce.
• Dados não estruturados ou mudanças frequentes de tipos e estrutura. • Necessidade quase exclusiva de queries NoSQL, mas com a possibilidade de executar queries complexas via Hadoop ou Oracle DB. • Necessidade de manipular grandes quantidades de dados com crescimento exponencial na casa de dezenas de Terabytes ou mais. • Necessidade de escalabilidade para manipular dados através de centenas de nós.
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
Mensagens que ficam...