MySQL do ISAM ao NoSQL

Post on 13-Dec-2014

1671 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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.

Transcript

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...

Obrigado!

airton.lastori@oracle.com meetup.com/mysql-br

@mysqlbr

top related