Upload
airton-lastori
View
1.672
Download
0
Embed Size (px)
DESCRIPTION
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.
Citation preview
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...