69
10 de Agosto de 2013 no Hotel Blue Tree Morumbi, São Paulo - SP Alta-disponibilidade e alta performance com o MySQL Cluster 7.3 Airton Lastori

Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

10 de Agosto de 2013 no Hotel Blue Tree Morumbi, São Paulo - SP

Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Airton Lastori

Page 2: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 3

@MySQLBR

meetup.com/MySQL-BR

facebook.com/MySQLBR

MySQLBR

Page 3: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 4

Agenda

O que é o MySQL Cluster?

Como começar?

Alta performance e disponibilidade

Perguntas?

Page 4: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 5

O que é o MySQL Cluster?

Page 5: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 6

MySQL Cluster

• Escalabilidade linear de Escritas e Leituras

• Elasticidade, crescimento incremental, distrib. simétrica Escalabilidade

• 99,999% de disponibilidade, 5min / ano

• Self-healing, failover menor que 1s, geo-replicação Alta Disponibilidade

• Performance em tempo real, in-memory e em disco

• Latência baixa e preditiva, acessos paralelos Alta Performance

• Modelo relacional ACID, SQL e Foreign Keys

• APIs NoSQL (C++, Java, Memcached, Node.js) Flexibilidade

• Open Source, suporte e ferramentas comerciais opcionais

• Hardware commodity Baixo TCO

Page 6: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 7

Monty, David e Allan:

UNIREG,MyISAM e mSQL.

Interface SQL com

Arquitetura Plugável.

Surge a MySQL AB.

Mais performance,

drivers, engines.

GPL, LAMP Stack.

Cresce o ecossistema.

Versão 3.

Logo e website.

InnoDB para

transações ACID.

Vale do Silício.

Versão 4.

MySQL Cluster é adquirido da Alzato-Ericsson

pela MySQL AB.

Versão 5.

InnoBase OY é adquirida pela

Oracle.

MySQL AB é adquirida pela

Sun.

Ferramentas Enterprise.

Sun Microsystems é adquirida pela

Oracle.

Versões 5.5, 5.6 e Cluster

7.1, 7.2 e 7.3.

’85…

…’94

’95…

…’96 ’97…

…’00

’01…

…’02

’03…

…’04

’05…

…’09

’10…

…’13

Histórico do MySQL

Page 7: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 9

Enterprise Management

Services and Utilities

Backup & Recovery

Monitor

Workbench

Utilities

Connection Pool, SQL Interface, Parser, Optimizer, Caches

Clients & Connectors Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl mysqld

Clients and Apps

Arquitetura MySQL Server

Storage Engines

InnoDB, MyISAM, Memory, Archive, Cluster (NDB API), etc…

Filesystems, Files & Logs

Data, Index, Logs…

Page 8: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 10

Cluster Data Nodes

NDB NDB

Connection Pool, SQL Interface, Parser, Optimizer, Caches

Enterprise Management

Services and Utilities

Backup & Recovery

Monitor

Workbench

Utilities

Clients & Connectors Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl

Arquitetura MySQL Cluster

Storage Engines

InnoDB, MyISAM, Memory, Archive, Cluster (NDB API), etc…

Filesystems, Files & Logs

Data, Index, Logs…

mysqld

Clients and Apps

ndbd

mgm_ndbd

Management

Page 9: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 11

Clients

Application Layer

Management

Arquitetura do MySQL Cluster

Management

Data Layer

ndbd ndbd ndbd ndbd

Page 10: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 12

O que NÃO é o MySQL Cluster

1. SGBD de uso geral, “bala de prata”

• Tabelas NDB ainda não são recomendadas para todos tipos de aplicações / workloads

• NDB ainda não é 100% compatível com InnoDB, mas podem ser usados em conjunto

• MySQL Cluster requer relativamente mais memória RAM

2. Cluster do tipo Shared-All que requer Shared Storage

• Como, por exemplo, Oracle RAC

• Cada Data Node tem sua unidade de armazenamento independente

3. Replicação tradicional do MySQL Server

• MySQL Cluster possui seu próprio mecanismo interno de replicação síncrona

• Também pode ser usado opcionalmente em conjunto com replicação externa tradicional do MySQL

4. “Apenas” o MySQL Server (mysqld)

• MySQL Cluster possui outros componentes: ndbd, ndb_mgmd

5. Produto de código fechado

• Possui edição community (GPL) e carrier-grade edition (suporte e ferramentas comerciais)

Page 11: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 13

Storage Engines

MyISAM InnoDB NDB Cluster

Transações ✖ ✔ ✔

Nível de Lock Tabela Linha Linha

Replicação Assíncrona ou

Semi-síncrona

Assíncrona ou

Semi-síncrona, crash-safe

Síncrona, Multi-master,

crash-safe sem SPOF

Foreign Keys ✖ ✔ ✔

Full-text indexes ✔ ✔ ✖

Compressão de dados somente Leitura ✔ ✖

Caches somente Índices Dados e Índices Dados e Índices

Suporte Geoespacial Tipos de Dados e Índices somente Tipos de Dados somente Tipos de Dados

Limite de armazenamento 256TB 64TB 384EB (~3TB em RAM)

dev.mysql.com/doc/refman/5.5/en/storage-engines.html

Page 12: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 14

Tabelas InnoDB vs NDB Cluster

dev.mysql.com/doc/refman/5.6/en/mysql-cluster-compared.html

Preferível InnoDB

• Datasets ou linhas muito grandes, muitos BLOBs, tabelas histórico, fulltext search

• Memória RAM mais limitada

• Transações muito longas ou com isolamento diferente de READ COMMITTED

• Foreign keys sob uso intensivo

• Muitos full table scans, queries analíticas

Preferível NDB Cluster

• Escalabilidade de escrita, multi-master, auto-sharding

• 99,999% uptime com operações online: adição de nós, upgrade, manutenção do esquema

• Baixa latência para transações mais curtas, performance tempo-real, paralelismo

• APIs NoSQL schemaless: Java, node.js, REST, C++, memcached

• Uso limitado de colunas BLOB

• Foreign keys são suportadas, porém podem causar impacto na performance em condições extremas

Page 13: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 15

NDB + InnoDB

Replicação

Síncrona

Replicação

Assíncrona

NDB API

NDB Cluster Data Nodes

MySQL Cluster

InnoDB

local

InnoDB

externo

Page 14: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 16

Replicação

síncrona

Replicação

assíncrona

InnoDB + NDB Cluster Opções com Geo-Replicação

Replicação síncrona entre os grupos de nós para HA

Geo-Replicação assíncrona ou síncrona entre

nós remotos NDB para

redundância geográfica

Replicação assíncrona entre Storage Engines

diferentes para aplicações

especializadas como geração

de relatórios

Cluster 1

InnoDB InnoDB InnoDB

Cluster 2

Page 15: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 18

Alguns Clientes MySQL Cluster

Page 16: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 19

sistema de recomendações de games casuais que identifica o visitante e exibe conteúdo direcionado ao seu perfil

já nos testes, com 2 data nodes, capacidade de 87k INSERTs por segundo e 3k SELECTs por segundo

latência extremamente baixa (sub-milisegundos) e alta-disponibilidade

NoSQL ClusterJ API (Java)

Caso de Sucesso

MySQL Cluster

“As a strategic project, we couldn’t afford to take

any chances. MySQL Cluster provided us with a

proven and trusted solution to meet the

demands of both our business and our users.”

Sean Chighizola

Database Director, Big Fish

mysql.com/why-mysql/case-studies/mysql-cs-bigfish.html

Page 17: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 20

Page 18: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 21

sistema global de detecção de fraudes que monitora transações financeiras, sessões dos usuários e histórico em tempo real

Trabalha com mais de 100TB e 100m de usuários, transações ACID, R/W <1 segundo em qualquer parte do mundo com geo-replicação

Escalabilidade linear com 99,999% de disponibilidade, na nuvem AWS

Caso de Sucesso

ACID em tempo real

“Technologies such as MySQL Cluster enables

users to get the best of both world’s: the agility of

NoSQL systems with the trust, maturity and

reliability of the SQL model.”

Daniel Austin

Chief Architect, Paypal

mysql.com/customers/view/?id=1223

Page 19: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 22

PayPal

Page 20: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 23

Social game para Facebook

2 milhões usuários, com +30k

novos usuários por dia

10K usuários concorrentes,

~10K TPS

99.999% uptime

Caso de Sucesso

Online Games

“The MySQL support service has been essential

in helping us for troubleshooting and giving

recommendations for the production cluster.”

Carlos Morales

DBA, playfulplay.com

blogs.oracle.com/MySQL/entry/mysql_cluster_powers_el_chavo

Page 21: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 24

Playful Play

Page 22: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 25

MySQL Cluster

Customers

mysql.com/customers/cluster

Page 23: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 26

Como começar a usar

o MySQL Cluster?

Page 24: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 27

MySQL Cluster Auto-Install

downloads.mysql.com/tutorials/cluster/mysql_wp_cluster_quickstart.pdf

Page 25: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 28

1. Download MCM/Cluster edelivery.oracle.com:

2. Unzip e execute o comando com usuário diferente de root:

MySQL Cluster Manager Para testes em uma única máquina

C:\MySQL\mcm\bin> mcmd --bootstrap

MySQL Cluster Manager 1.1.2 started

Connect to MySQL Cluster Manager by running “C:\MySQL\mcm\bin\mcm" -a NOVA:1862

Configuring default cluster 'mycluster'...

Starting default cluster 'mycluster'...

Cluster 'mycluster' started successfully

ndb_mgmd NOVA:1186

ndbd NOVA

ndbd NOVA

mysqld NOVA:3306

mysqld NOVA:3307

ndbapi *

Connect to the database by running “C:\MySQL\mcm\cluster\bin\mysql" -h NOVA -P 3306 -u root

Page 26: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 29

Teste via MySQL Workbench

Page 27: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 30

Teste via MySQL Workbench 2/2

Page 28: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 31

Flexibilidade na interação com os dados

• Escalabilidade linear de Escritas e Leituras

• Elasticidade, crescimento incremental, distrib. simétrica Escalabilidade

• 99.999% de disponibilidade, 5min / ano

• Self-healing, failover menor que 1s, geo-replicação Alta Disponibilidade

• Performance em tempo real, in-memory e em disco

• Latência baixa e preditiva, acessos paralelos Alta Performance

• Modelo relacional ACID, SQL e Foreign Keys

• APIs NoSQL (C++, Java, Memcached, Node.js) Flexibilidade

• Open Source, suporte e ferramentas comerciais opcionais

• Hardware commodity Baixo TCO

Page 29: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 32

Clients

Application Layer

Management

APIs NoSQL

Management

Data Layer

ndbd ndbd ndbd ndbd

Page 30: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 33

Os mesmos dados

acessados

simultaneamente

através de interfaces

SQL e NoSQL

APIs de Acesso aos Dados

Page 31: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 34

Qual API devo usar?

SQL

• Padrão da indústria

• Joins e Queries complexas

• Modelo relacional

ClusterJ / OpenJPA

• ORM Java

• Simplicidade

• Acesso nativo e rápido ao Cluster

• Ex: Web e Telco

memcached

• chave/valor

• Simples de usar

• Driver para diversas linguagens

• Ex: PHP Proxy

node.js

• Javascript

• Mesma tecnologia do browser no lado do servidor

• Ex: Mobile Apps

mod_ndb

• REST/JSON

• HTML

• Uso do Apache httpd

C++

• Performance extrema

• Tempo real

• Desenvolvedor experiente

• Mais baixo nível

Page 32: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 35

<estado:SP,Campinas>

prefix key value

<estado:SP,Campinas>

key value

Prefix Table Key-col Val-col policy

estado: mapa.cidades sigla_estado cidade cluster

Config tables

sigla_estado ... cidade ...

SP ... Campinas ...

Tabela cidades do DB mapa

visão da Aplicação

visão MySQL Cluster

Cluster & Memcached Schema configurável

SELECT * FROM mapa.cidades

WHERE cidade LIKE ’C%’;

Page 33: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 36

Exemplos Memcached API

Blog:

Scalable, persistent, HA NoSQL Memcache storage using MySQL

Cluster

15 February 2012

clusterdb.com/mysql-cluster/scalabale-persistent-ha-nosql-memcache-

storage-using-mysql-cluster

Page 34: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 37

var nosql = require('mysql-js');

var annotations = new

nosql.TableMapping('cidade').apply

ToClass(Cidade);

var dbProperties =

nosql.ConnectionProperties('ndb');

nosql.openSession(dbProperties,

Cidade, annotations, onSession);

Connector modular para

vários back-ends:

• direta com NDB

• via MySQL Server

Novo: Node.js connector 1/4

Page 35: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 38

var onSession = function(err, session) {

if (err) {console.log(err);

process.exit(0);} else {

var data = new Cidade('Guarulhos',

'SP');

session.persist(data, onInsert, data,

session);

}

};

Novo: Node.js connector 2/4

Page 36: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 39

var onInsert = function(err, object, session) {

if (err) {console.log(err);} else {

console.log('Inserido: ' +

JSON.stringify(object));

session.find(Cidade,'Guarulhos',

onFind);

}

};

Novo: Node.js connector 3/4

Page 37: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 40

var onFind = function(err, result) {

if (err) {console.log(err);} else {

console.log('Encontrado: ' +

JSON.stringify(result));

}

process.exit(0);

};

Novo: Node.js connector 4/4

Page 38: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 41

Exemplos JavaScript / Node.js API

Blog:

MySQL Cluster Tutorial: NoSQL JavaScript Connector for Node.js

17 April 2013

blogs.oracle.com/MySQL/entry/mysql_cluster_tutorial_nosql_api

Page 39: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 42

Performance e

Alta-disponibilidade

Page 40: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 43

Data Layer

Application Layer

Management

mgm_ndbd

MySQL Cluster: arquitetura simplificada

mysqld

Clients

MySQL Cluster Data Nodes

ndbd ndbd ndbd ndbd

Page 41: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 44

Como escalar leituras e escritas?

• Escalabilidade linear de Escritas e Leituras

• Elasticidade, crescimento incremental, distrib. simétrica Escalabilidade

• 99.999% de disponibilidade, 5min / ano

• Self-healing, failover menor que 1s, geo-replicação Alta Disponibilidade

• Performance em tempo real, in-memory e em disco

• Latência baixa e preditiva, acessos paralelos Alta Performance

• Modelo relacional ACID, SQL e Foreign Keys

• APIs NoSQL (C++, Java, Memcached, Node.js) Flexibilidade

• Open Source, suporte e ferramentas comerciais opcionais

• Hardware commodity Baixo TCO

Page 42: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 45

Data Node 1

Data Node 2

Data Node 3

Data Node 4

Table T1

P2

P3

P4

P1

Data Sharding: escalando ESCRITAS

Page 43: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 46

Data Node 1

Data Node 2

F1

Data Node 3

Data Node 4

Table T1

P2

P3

P4

P1

Data Sharding: escalando ESCRITAS

Page 44: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 47

Data Node 1

Data Node 2

F1

F3

Data Node 3

Data Node 4

Table T1

P2

P3

P4

P1

Data Sharding: escalando ESCRITAS

Page 45: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 48

Data Node 1

Data Node 2

F1

F3

Data Node 3

Data Node 4

F2

Table T1

P2

P3

P4

P1

Data Sharding: escalando ESCRITAS

Page 46: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 49

Data Node 1

Data Node 2

F1

F3

Data Node 3

Data Node 4

F2

F4

Table T1

P2

P3

P4

P1

Data Sharding: escalando ESCRITAS

Page 47: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 50

Data Layer

Application Layer

MySQL Cluster: auto-sharding

Table T1

P2

P3

P4

P1 F1

F3

F2

F4

ndbd ndbd ndbd ndbd

Clients

mysqld

Table T1

visão da Aplicação

visão MySQL Cluster

SQL

NDB API

Page 48: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 51

In-Memory, parallel, AQL, Pushdown Joins

1. Memória RAM mais barata e redes mais rápidas

• Escrever em memória RAM remota é mais rápido que em disco local

2. Múltiplas threads trabalhando em paralelo em diversas máquinas

• Uso de arquiteturas multi-core

3. Adaptative Query Localization

• Queries mais complexas, envolvendo apenas Data Nodes necessários

4. Pushdown Joins

• JOINs resolvidos nos Data Nodes, em paralelo

Page 49: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 52

NoSQL C++ API, flexaSynch benchmark

30 x Intel E5-2600 Intel Servers, 2 socket, 64GB

ACID Transactions, Synchronous Replication

0

5

10

15

20

25

2 4 6 8 10 12 14 16 18 20 22 24 26 28 30

Mil

lio

ns

of

UP

DA

TE

s p

er

Se

co

nd

MySQL Cluster Data Nodes

20 Milhões de UPDATEs / seg

Page 50: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 55

Como garantir a alta-disponibilidade?

• Escalabilidade linear de Escritas e Leituras

• Elasticidade, crescimento incremental, distrib. simétrica Escalabilidade

• 99.999% de disponibilidade, 5min / ano

• Self-healing, failover menor que 1s, geo-replicação Alta Disponibilidade

• Performance em tempo real, in-memory e em disco

• Latência baixa e preditiva, acessos paralelos Alta Performance

• Modelo relacional ACID, SQL e Foreign Keys

• APIs NoSQL (C++, Java, Memcached, Node.js) Flexibilidade

• Open Source, suporte e ferramentas comerciais opcionais

• Hardware commodity Baixo TCO

Page 51: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 56

Data Node 1

Data Node 2

F1

F1

Data Node 3

Data Node 4

Table T1

P2

P3

P4

P1

Data Sharding + Replicação

Page 52: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 57

Data Node 1

Data Node 2

F1 F3

F1

Data Node 3

Data Node 4

Table T1

P2

P3

P4

P1 F3

Data Sharding + Replicação

Page 53: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 58

Data Node 1

Data Node 2

F1 F3

F3 F1

Data Node 3

Data Node 4

F2

F2

Table T1

P2

P3

P4

P1

Data Sharding + Replicação

Page 54: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 59

Data Node 1

Data Node 2

F1 F3

F3 F1

Data Node 3

Data Node 4

F2 F4

F4 F2

Table T1

P2

P3

P4

P1

Data Sharding + Replicação

Page 55: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 60

Data Node 1

Data Node 2

F1 F3

F3 F1

Data Node 3

Data Node 4

F2 F4

F4 F2

Gro

up

1

Table T1

P2

P3

P4

P1

Data Sharding + Replicação

Gro

up

2

Page 56: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 61

Data Node 1

Data Node 2

F1 F3

F3 F1

Data Node 3

Data Node 4

F2 F4

F4 F2

Gro

up

1

Table T1

P2

P3

P4

P1

Data Sharding + Replicação

Gro

up

2

Page 57: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 62

visão da Aplicação

MySQL Cluster Data Nodes

Data Layer

Application Layer

Management

mgm_ndbd

MySQL Cluster: alta-disponibilidade Table T1

F1

F3

F3

F1 F2

F4

F4

F2

Management

mgm_ndbd

mysqld mysqld

ndbd ndbd ndbd ndbd

Clients

Page 58: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 63

Qual o custo?

Page 59: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 64

Como manter TCO baixo?

• Escalabilidade linear de Escritas e Leituras

• Elasticidade, crescimento incremental, distrib. simétrica Escalabilidade

• 99.999% de disponibilidade, 5min / ano

• Self-healing, failover menor que 1s, geo-replicação Alta Disponibilidade

• Performance em tempo real, in-memory e em disco

• Latência baixa e preditiva, acessos paralelos Alta Performance

• Modelo relacional ACID, SQL e Foreign Keys

• APIs NoSQL (C++, Java, Memcached, Node.js) Flexibilidade

• Open Source, suporte e ferramentas comerciais opcionais

• Hardware commodity Baixo TCO

Page 60: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 65

Principais componentes do TCO

1. Custo de aquisição

• Licenciamento do Software (desenvolvimento e produção)

• Hardware necessário

• Conhecimento da equipe

• Produtividade do time de desenvolvimento

2. Custo de manutenção e evolução

• Hospedagem e manutenção do hardware

• Conhecimento da equipe

• Estabilidade e maturidade do software

• Suporte do fabricante

• Produtividade: Ferramentas de gerenciamento, monitoramento e backup

• Produtividade do time de evolução do produto

Page 61: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 66

Carrier Grade Edition (CGE) - comercial

MySQL Cluster

Suporte

Monitor &

Backup

Plug-ins

Manager

mysql.com/products/cluster/features.html

Page 62: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 67

Aprenda mais…

Page 64: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 69

Próximo passo: documentação

Reference Manual

Cap. 17.1, MySQL Cluster Overview

1. MySQL Cluster Core Concepts

2. MySQL Cluster Nodes, Node Groups, Replicas, and Partitions

3. MySQL Cluster Hardware, Software, and Networking

Requirements

4. MySQL Cluster Development History

5. MySQL Server Using InnoDB Compared with MySQL Cluster

6. Known Limitations of MySQL Cluster

dev.mysql.com/doc/refman/5.6/en/mysql-cluster.html

Page 65: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 70

Mais sobre como MySQL Cluster para Web

Whitepaper:

Guide to Scaling Web Databases with

MySQL Cluster

June 2013

mysql.com/why-mysql/white-papers/guide-to-

scaling-web-databases-with-mysql-cluster

Page 66: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 71

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

mysql.com/training

Certificações

Opcional

Necessário

Treinamentos e certificações

Page 67: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 72

Sumário

O MySQL Cluster é um produto derivado do popular MySQL Server que é o

"M" do LAMP stack.

Trata-se de um banco de dados distribuído com arquitetura shared-nothing e

que pode oferecer 99,999% de disponibilidade, performance superior a 1

bilhão de escritas por minuto, escalabilidade linear, conformidade com o

modelo ACID, flexibilidade das interfaces NoSQL e geo-replicação multi-

master.

Instale, migre algumas tabelas e comece a usar!

Page 68: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 73

@MySQLBR facebook.com/MySQLBR Obrigado!

Slides disponíves em…

Page 69: Alta-disponibilidade e alta performance com o MySQL Cluster 7.3

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 74

Perguntas?

Alta-disponibilidade e alta performance com o MySQL Cluster 7.3