MySQL 5.6 com memcached

Post on 22-Nov-2014

2.042 views 3 download

description

Descubra as novidades da versão 5.6 do banco de dados open source mais popular do mundo!

Transcript of MySQL 5.6 com memcached

<Insert Picture Here>

Airton Lastori airton.lastori@oracle.com

dez-2011

MySQL 5.6 com

recursos NoSQL

Disclaimer

The preceding is intended to outline our general

product direction. It is intended for information

purposes only, and may not be incorporated into any

contract. It is not a commitment to deliver any material,

code, or functionality, and should not be relied upon in

making purchasing decisions. The development, 2

release, and timing of any features or functionality

described for Oracle’s products remains at the sole

discretion of Oracle.

agenda

MySQL na Oracle

MySQL Server 5.6 com NoSQL

Roadmap: o que vem por aí

agenda

MySQL na Oracle

MySQL Server 5.6 com NoSQL

Roadmap: o que vem por aí

Suporte Oracle ao Open Source/Standards

MySQL & InnoDB, Linux, Java, GlassFish, NetBeans, Eclipse, PHP, Apache, Berkeley DB, VirtualBox, Xen…

http://www.oracle.com/us/technologies/open-source

...além de manter times de engenharia, suporte,

consultoria, evolução dos produtos open source e

comerciais, certificações...

A Oracle está comprometida com o MySQL

Set your ambitions high!

MySQL Open Source (GPL)

• MySQL Database (Community Server) 5.5.18 e 5.6.3 DMR

• MySQL Cluster (NDB Community) 7.1.17 e 7.2.1b DMR

• MySQL Workbench Community Edition

• MySQL Utilities (em Python)

• MySQL Connectors

• MySQL Proxy

• Documentação: livre para uso, não coberto pela GPL

• Forums

dev.mysql.com/downloads

Indicado para empresas ou pessoas físicas que pretendem

aumentar produtividade, diminuir riscos e explorar mais a

fundo as capacidades do MySQL.

Oracle Premier Lifetime Support

MySQL Enterprise Edition

Oracle Product Certifications

MySQL Enterprise High Availability

MySQL Enterprise Security

MySQL Enterprise Scalability

MySQL Enterprise Backup

MySQL Enterprise Monitor/Query Analyzer

MySQL Workbench

Abril 2010 Julho 2010 Dezembro 2010 Junho 2011

• Workbench 5.2

• Server 5.5

• Enterprise Backup 3.5

• Enterprise Monitor 2.3

• Cluster Manager 1.1

Outubro 2011

• Enterprise Monitor 2.2

• Cluster 7.1

• Cluster Manager 1.0

• Enterprise Backup 3.6

• Oracle VM Template

for MySQL Enterprise

*Development Milestone Release

Server 5.6

Cluster 7.2

DMR* & MySQL

Labs Early Access

Releases

Inovação acelerada do MySQL

• Plug-Ins Commercial

Extensions

• Certifications: Oracle

Fusion & Win Cluster

Abril 2010 Julho 2010 Dezembro 2010 Junho 2011

• Workbench 5.2

• Server 5.5

• Enterprise Backup 3.5

• Enterprise Monitor 2.3

• Cluster Manager 1.1

Outubro 2011

• Enterprise Monitor 2.2

• Cluster 7.1

• Cluster Manager 1.0

• Enterprise Backup 3.6

• Oracle VM Template

for MySQL Enterprise

*Development Milestone Release

Server 5.6

Cluster 7.2

DMR* & MySQL

Labs Early Access

Releases

Inovação acelerada do MySQL

• Plug-Ins Commercial

Extensions

• Certifications: Oracle

Fusion & Win Cluster

MySQL 5.5 SysBench Benchmarks

Intel Xeon X7460 x86_64

4 CPU x 6 Cores/CPU

2.66 GHz, 32GB RAM

Fedora 10

MySQL 5.1.40 (InnoDB built-in)

MySQL 5.1.40 (InnoDB Plug-in)

MySQL 5.5.4 (New InnoDB)

200% ganho de desempenho para MySQL 5.5 sobre 5.1.40

MySQL 5.5 SysBench Benchmarks

MySQL 5.1.40 (InnoDB built-in)

MySQL 5.1.40 (InnoDB Plug-in)

MySQL 5.5.4 (New InnoDB)

Intel Xeon X7460 x86_64

4 CPU x 6 Cores/CPU

2.66 GHz, 32GB RAM

Fedora 10

364% ganho de desempenho para MySQL 5.5 sobre 5.1.40

MySQL 5.1.50

(InnoDB built-in)

MySQL 5.1.50

(InnoDB Plug-in)

MySQL 5.5.6

(New InnoDB)

SysBench Benchmark

Intel x86_64

4 CPU x 2 Cores/CPU

3.166 GHz, 8GB RAM

Windows Server 2008

540% ganho de performance para MySQL 5.5 sobre 5.1.40

MySQL 5.5 no Windows

MySQL 5.5 no Windows

MySQL 5.1.50

(InnoDB built-in)

MySQL 5.1.50

(InnoDB Plug-in)

MySQL 5.5.6

(New InnoDB)

SysBench Benchmark

Intel x86_64

4 CPU x 2 Cores/CPU

3.166 GHz, 8GB RAM

Windows Server 2008

1560% ganho de performance para MySQL 5.5 sobre 5.1.40

InnoDB no MySQL

• Storage Engine mais utilizado em:

• aplicações Web 2.0

• aplicações de varejo

• aplicações de entretenimento & mídia

• ACID

• Crash recovery

• Integridade referencial

• Suporta altos níveis de usuários concorrentes

• Na versão MySQL 5.5:

• padrão

• otimizado para hardware multi-core, multi-thread e SOs

Abril 2010 Julho 2010 Dezembro 2010 Junho 2011

• Workbench 5.2

• Server 5.5

• Enterprise Backup 3.5

• Enterprise Monitor 2.3

• Cluster Manager 1.1

Outubro 2011

• Enterprise Monitor 2.2

• Cluster 7.1

• Cluster Manager 1.0

• Enterprise Backup 3.6

• Oracle VM Template

for MySQL Enterprise

*Development Milestone Release

Server 5.6

Cluster 7.2

DMR* & MySQL

Labs Early Access

Releases

Inovação acelerada do MySQL

• Plug-Ins Commercial

Extensions

• Certifications: Oracle

Fusion & Win Cluster

Extensões Comerciais

• Enterprise Security • Plug-In: MySQL External Authentication

• Enterprise Scalability • Plug-In: MySQL Thread Pool

Windows Authentication

Connector

Connect as

1. MyDomain\joe faz login

na aplicação com senha

Windows

Connected

Authenticate

CREATE USER win_joe

IDENTIFIED WITH authentication_windows

AS ‘joe';

App

LDAP/AD Windows

Auth

Connect as

2. MyDomain\joe é

autenticado via

LDAP/AD Connect as

4. Tokens são verificados, o

usuário win_joe é autenticado

com Windows login, porém

com privilégios do MySQL.

Connect as

3. A aplicação conecta-se

ao MySQL com usuário

win_joe.

Gestão Padrão do Thread Pool

Clientes Internos

Gestão Padrão

doThread Pool

Conexões /

Declarações

atribuídas aos

Threads durante

sua existência

Execução das Conexões das Threads

Clientes Externos

• Conexões são atribuídas a 1 thread durante a existência da Conexão.

• A mesma thread é usada para todas as declarações de execução (single

threaded)

Com o Thread Pool Habilitado

Clientes Internos

Clientes Externos

Thread Pool

Grupo Thread 1

Threads 1 - 4096

Grupo Thread 2

Threads 4097 - 8193

Grupo Thread N

Threads 8194 - N

Grupo Thread 1

Grupo Thread 2

Grupo Thread N

• Pool contém um número de Grupo de Threads(default = 16), cada um gerencia até 4096

threads reusáveis

• Cada conexão é atribuída ao grupo de thread via round robin

mantém a performance em altas cargas de

usuários/conexões

Execução das Conexões das Threads

MySQL Enterprise Edition

ComThread Pool

MySQL Community Server

SemThread Pool

3x Melhor Escalabilidade com Thread Pool

MySQL 5.5.16

Oracle Linux 6.1, Unbreakable Kernel 2.6.32

2 sockets, 24 cores, 2 X 12-core

Intel(R) Xeon(R) X5670 2.93GHz CPUs

72GB DDR3 RAM

2 X LSI SCSI Disk (MR9261-8i) (597GB)

0

2.000

4.000

6.000

8.000

10.000

12.000

T

Conexões Simultâneas no Banco de Dados

MySQL 5.5 Sysbench OLTP Apenas Leitura

Comparativo com/sem Thread Pool

MySQL Enterprise Edition

ComThread Pool

MySQL Community Server

Sem Thread Pool

Comparativo com/sem Thread Pool

20x Melhor Escalabilidade comThread Pool

0

1.000

2.000

3.000

4.000

5.000

6.000

7.000

8.000

Tra

ns

õe

s p

or

se

gu

nd

o

Conexões Simultâneas no Banco de Dados

MySQL 5.5 Sysbench OLTP Leitura/Escrita

MySQL 5.5.16

Oracle Linux 6.1, Unbreakable Kernel 2.6.32

2 sockets, 24 cores, 2 X 12-core

Intel(R) Xeon(R) X5670 2.93GHz CPUs

72GB DDR3 RAM

2 X LSI SCSI Disk (MR9261-8i) (597GB)

Abril 2010 Julho 2010 Dezembro 2010 Junho 2011

• Workbench 5.2

• Server 5.5

• Enterprise Backup 3.5

• Enterprise Monitor 2.3

• Cluster Manager 1.1

Outubro 2011

• Enterprise Monitor 2.2

• Cluster 7.1

• Cluster Manager 1.0

• Enterprise Backup 3.6

• Oracle VM Template

for MySQL Enterprise

*Development Milestone Release

Server 5.6

Cluster 7.2

DMR* & MySQL

Labs Early Access

Releases

Inovação acelerada do MySQL

• Plug-Ins Commercial

Extensions

• Certifications: Oracle

Fusion & Win Cluster

agenda

MySQL na Oracle

MySQL Server 5.6 com NoSQL

Roadmap: o que vem por aí

1. melhor performance, escalabilidade

2. melhor instrumentação

3. melhor throughput nas transações

4. maior disponibilidade, integridade de dados

5. mais flexibilidade, menor complexidade

MySQL 5.6: um MySQL ainda melhor!

1. melhor performance, escalabilidade

Optmizer

2. melhor instrumentação

Performance Schema

3. melhor throughput nas transações

InnoDB

4. maior disponibilidade, integridade de dados

Replicação

5. mais flexibilidade, menor complexidade de infra-estrutura

opções NotOnlySQL com memcached

MySQL 5.6: um MySQL ainda melhor!

Development Milestone Releases

MySQL Labs: Early Access

labs.mysql.com

1. melhor performance, escalabilidade

Optmizer

2. melhor instrumentação

Performance Schema

3. melhor throughput nas transações

InnoDB

4. maior disponibilidade, integridade de dados

Replicação

5. mais flexibilidade, menor complexidade

opções NotOnlySQL com memcached

MySQL 5.6: um MySQL ainda melhor!

Server 5.6.3 Development

Milestone Release

Labs Early Access

Labs Early Access

1. melhor performance, escalabilidade

Optmizer

2. melhor instrumentação

Performance Schema

3. melhor throughput nas transações

InnoDB

4. maior disponibilidade, integridade de dados

Replicação

5. mais flexibilidade, menor complexidade

opções NotOnlySQL com memcached

MySQL 5.6: um MySQL ainda melhor!

Server 5.6.3 Development

Milestone Release

Labs Early Access

Labs Early Access

1. melhor performance, escalabilidade Optimizer no MySQL 5.6.3

a. Otimizações na ordenação com limites pequenos Ex: ORDER BY...LIMIT 100 (paginação Web App) = 3x mais rápido 20M linhas

b. Index Condition Pushdown Ex: WHERE ... BETWEEN = de 1,40s para 0,09s num Buffer Pool de 1,5GB

c. Batched Key Access & Multi Range Read Ex: Queries com JOIN disk-bound = aproximadamente 120x mais rápido

d. Postponed Materialization Ex: Views/Subqueries no FROM; EXPLAIN = 240x mais rápido

e. EXPLAIN para INSERT, UPDATE & DELETE Funcionalidade muito aguardada, mais recursos para otimização de escritas

f. Estatísticas persistentes do Optimizer Estatísticas mais precisas, estáveis via ANALYZE

g. Optimizer Traces Mostra como o plano foi gerado, pontos de decisão etc.

2. melhor instrumentação PERFORMANCE_SCHEMA no MySQL 5.6.3

Profiling & Tuning aperfeiçoado para BD e Aplicação

• Statements/Stages

• Quais queries mais custosas? Quando elas gastam tempo?

• Table/Index I/O, Table Locks

• Quais tabelas/índices causam maior carga e/ou contenção?

• Network I/O

• Qual o comportamento de carga de rege? Quanto tempo as sessões

ficam ociosas?

• Users/Hosts/Accounts

• Quais usuários/hosts/contas consomem mais recursos?

• Summaries

• Estatísticas agregadas, agrupadas por thread, user, host, account ou

object

3. melhor throughput de transações InnoDB no MySQL 5.6.3

• Novas tabelas no INFORMATION_SCHEMA: Metrics, System, Buffer Pool

• Melhor informação dos internals do InnoDB

• Status da transação

• Locking

• Buffer pool

• Estatísticas de I/O de página

• Dicionário de dados

• Contadores de performance

• Thread scheduling melhorado

• Detecção de deadlock não-recursiva

• Flushing de LRU melhorado

• Checksum rápido

• Tablespace(s) separado para Undo Log

• Dump & Restore de Buffer Pool

• Aumento do tamanho máximo do Redo Log

• Collation Ids de 2-bytes

• Maior limite para index key prefixes (3072 bytes)

• Contenção reduzida durante file extension

4. maior disponibilidade, integridade dos dados Replicação no MySQL 5.6.3

Replicação elevada a outro nível

• Melhor integridade dos dados

• Crash-Safe Slaves, Replication Checksums, Crash-safe binlog

• Melhor performance

• Multi-threaded Slaves, tamanho do binlog reduzido para RBR

• Mais Flexibilidade

• Time-delayed replication

• Detecção de problemas simplificada

• Log da Query original para formato Row-based

• Gerenciamento e Monitoramente melhorado

• Server UUIDs, backup remoto do binlog

1. melhor performance, escalabilidade

Optmizer

2. melhor instrumentação

Performance Schema

3. melhor throughput nas transações

InnoDB

4. maior disponibilidade, integridade

Replicação

5. mais flexibilidade, menor complexidade

opções NotOnlySQL com memcached

MySQL 5.6: um MySQL ainda melhor!

E mais, ainda na 5.6.3

• melhorias IPv6

• suporte Unicode para Windows client

• import/export de tabelas de/para partições

• seleção explícita de partição

• GIS/MyISAM: mais precisão em operações

1. melhor performance, escalabilidade

Optmizer

2. melhor instrumentação

Performance Schema

3. melhor throughput nas transações

InnoDB

4. maior disponibilidade, integridade de dados

Replicação

5. mais flexibilidade, menor complexidade

opções NotOnlySQL com memcached

MySQL 5.6: um MySQL ainda melhor!

Server 5.6.3 Development

Milestone Release

Labs Early Access

Labs Early Access

Early Access

• InnoDB

• InnoDB – menores page

sizes de 4k e 8k

• InnoDB - Full-text Search

• Replicação

• Global Transaction IDs

• Binlog API

• Binlog Group Commit

• Opções “NotOnlySQL”

acessando InnoDB

Em desenvolvimento

• Escalabilidade Multi-core

• Otimizações de Subquery

• Saída EXPLAIN estruturada

• Mais operações Online: add,

rebuild indexes

• Otimizações para SSD, suporte e

orientação para tuning

• Metadata para InnoDB

tablespaces para portabilidade

• TIME, TIMESTAMP, DATETIME:

precisão fracional

Mais (em breve)…

MySQL: Early Access, em desenvolvimento

1. melhor performance, escalabilidade

Optmizer

2. melhor instrumentação

Performance Schema

3. melhor throughput nas transações

InnoDB

4. maior disponibilidade, integridade de dados

Replicação

5. mais flexibilidade, menor complexidade

opções NotOnlySQL com memcached

MySQL 5.6: um MySQL ainda melhor!

Labs Early Access

Server 5.6.3 Development

Milestone Release

Labs Early Access

5. mais flexibilidade, menor complexidade NoSQL com MySQL 5.6

5. mais flexibilidade, menor complexidade NoSQL com MySQL 5.6

Performance for web-based services

for Non-structured data stores and

with horizontal Scalability.

como definido em 2009

por quê???

5. mais flexibilidade, menor complexidade NoSQL com MySQL 5.6

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

5. mais flexibilidade, menor complexidade NoSQL com MySQL 5.6

... realmente muito útil para alta-performance,

mas os dados não são duráveis, depende de lógica de

sincronização com BD e também de infra-estrutura adicional

5. mais flexibilidade, menor complexidade NoSQL com MySQL 5.6

• Memcached daemon plug-in to mysqld

• Memcached protocol mapped to the native InnoDB API

• Shared process space for ultra-low latency

InnoDB Storage Engine

MySQL Server Memcached

plugin

Application

SQL

MySQL Client

NoSQL

Memcached Protocol

mysqld

5. mais flexibilidade, menor complexidade NoSQL com MySQL 5.6

Mais flexibilidade para o Desenvolvedor: • Dados não estruturados, mas também Queries ricas SQL e

fulltext search nos valores

• Baixa latência, alto throughput sem transformações SQL

• Sem necessidade de implementar lógica de persistência

• Transações persistentes, crash-safe & ACID

• Sincronismo garantido pelo BD, consistência acessando via SQL

ou por chave

• Reuso de clientes memcached já existentes

• Compatível com drivers e bibliotecas para diversas plataformas

• Reduz esforço de desenvolvimento

porque...

5. mais flexibilidade, menor complexidade NoSQL com MySQL 5.6

Menor complexidade e risco para o Administrador: • Escalabilidade horizontal e replicação

• Mesma infra-estrutura, recursos NoSQL prontos para uso

• Camada única de dados, sem duplicação

• Ferramentas de monitoramento e administração

• Re-população automática do cache após indisponibilidade

• Reduz esforço de administração

• Tecnologia robusta e confiável

• Reduz risco de perda de dados e indisponibilidade

também porque...

agenda

MySQL na Oracle

MySQL Server 5.6 com NoSQL

Roadmap: o que vem por aí

• Re-factored architecture

• Pluggable feature set

• Deprecate legacy “baggage”

• Real data dictionary (remove .frm files)

• Better Cloud, Hosting, SaaS features

• Auto-sharding, load balancing, automatic failover

• Online operations

• Multi-tenancy, schema/catalogs, resource control, “elastic resources”

• Windows platform

• Continue improvements

Goals Roadmap: MySQL Database

• Ease of Use • Tools for simplified configuration, provisioning & management

• Enhanced API Support • New NoSQL Interfaces

• Richer SQL Functionality

• Performance & Capacity Increases • Optimizations for latest hardware developments

• Wider Deployment Options • Virtualization

• Cloud

Roadmap: MySQL Cluster Goals

• MySQL Enterprise Security

• MySQL Database Auditing extension

• Oracle Product Certifications

• Oracle Database Firewall

• Oracle Audit Vault

• MySQL Enterprise Monitor

• Evolve into management

• Instance, Backup, Replication\HA

• Integration with Oracle Enterprise Manager

Roadmap: MySQL Enterprise Edition 1/2 Goals

• MySQL Enterprise Backup

• Performance – parallel backups, skip empty pages, PK only options

• Efficiency, Ease of use

• Better PIT recovery

• Better master/slave synch on restore

• Cloning of complete prod, test, QA environments

• MySQL Workbench SE

• Schema/data migration from SQL Server

• ER Model Repository

• Code generation – PHP, Python

Roadmap: MySQL Enterprise Edition 2/2 Goals

Mais sobre MySQL

MySQL Treinamento e Certificação

MySQL Boot Camp

Accelerated

MySQL Performance

Tuning Boot Camp

Accelerated

MySQL for Begginers

MySQL for Database

Administrators

MySQL Performance

Tuning

MySQL High

Availability

MySQL Cluster

MySQL DBA

MySQL Boot Camp

Accelerated

MySQL for Developers

MySQL Performance

Tuning Boot Camp

Accelerated

MySQL for Begginers

MySQL and PHP

Developing Dynamic

Web Applicationg

MySQL Advanced

Stored Procedures

MySQLDeveloper

http://education.oracle.com

Treinamentos

Certificações

Opcional

Necessário

Downloads & Trials

dev.mysql.com

labs.mysql.com

edelivery.oracle.com

Documentação, Blogs & Fóruns

dev.mysql.com/doc

planet.mysql.com

forums.mysql.com

Artigos & Casos de Sucesso

mysql.com/why-mysql/white-papers

mysql.com/customers

Links

Sumário

O MySQL 5.6 traz enormes melhorias e destacam-se 5 principais:

melhor performance e escalabilidade;

melhor instrumentação;

melhor throughput nas transações;

maior disponibilidade, integridade;

mais flexibilidade e menor complexidade com NoSQL.

Estas melhorias reforçam o compromisso Oracle com MySQL e

com a estratégia Open Source como modelo de negócio.

O MySQL é o Banco de Dados Open Source mais popular do

mundo e estamos trabalhando para um MySQL ainda melhor!

Obrigado!

Time MySQL Brasil

marcos.trujillo@oracle.com airton.lastori@oracle.com marcelo.t.souza@oracle.com ana.guiselini@oracle.com

@MySQLBR meetup.com/MySQL-BR