mysql cluster e big data

83
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 1 Airton Lastori [email protected] 12-jul-2013 MySQL Cluster e Big Data visão geral

Upload: mysql-brasil

Post on 02-Dec-2014

1.564 views

Category:

Technology


3 download

DESCRIPTION

O MySQL Cluster é um produto derivado do popular MySQL Server que é o "M" do LAMP stack e pode ser usado como solução para problemas de Big Data. 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.

TRANSCRIPT

Page 1: MySQL Cluster e Big Data

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

Airton Lastori [email protected]

12-jul-2013

MySQL Cluster e Big Data – visão geral

Page 2: MySQL Cluster e Big Data

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

@MySQLBR

meetup.com/MySQL-BR

facebook.com/MySQLBR

MySQLBR

Page 3: MySQL Cluster e Big Data

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

Agenda

Problemas e soluções para Big Data

O que é o MySQL Cluster?

Como começar?

Como funciona?

Perguntas?

Page 4: MySQL Cluster e Big Data

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

Problemas e soluções

para Big Data

Page 5: MySQL Cluster e Big Data

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

O que é?

Big Data =

Datasets volumosos: 90% dos dados gerados nos últimos 2 anos

Crescimento muito rápido: ~50x maior velocidade

Fontes variadas:

web, dispositivos móveis, sensores, câmeras…

produção voluntária e não-volutária

de qualidade varíavel

Variabilidade de formatos: dados estruturados e não-estruturados

Se bem aproveitados, muitas oportunidades, muito valor

Não há consenso na definição, mas há fatos

Page 6: MySQL Cluster e Big Data

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

Desafios Big Data

VOLUME VELOCIDADE

SOCIAL

VARIEDADE

BLOG

SMART

METER

VARIABILIDADE

10110010100

10010011010

10101011100

10101010010

PROBLEMA: os sistemas convencionais não foram projetados para isso!

Page 7: MySQL Cluster e Big Data

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

Novas demandas, novas soluções

Transações

Arquitetura tradicional: Decisões basedas nos dados do

seu banco de dados

Big Data: Decisões baseadas em todos

dados capturáveis

Video e Imagens

Dados gerados por máquinas Dados Sociais

Documentos

Transações

Page 8: MySQL Cluster e Big Data

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

Page 9: MySQL Cluster e Big Data

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

ACQUIRE

ORGANIZE ANALYZE

DECIDE

Big Data Lifecycle

Page 10: MySQL Cluster e Big Data

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

BI Solutions

ACQUIRE

ORGANIZE ANALYZE

DECIDE

Hadoop

Applier

Big Data Lifecycle com MySQL+Hadoop

Page 11: MySQL Cluster e Big Data

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

Por que Hadoop? (1/2) Projetado para resolver problemas de Big Data

Armazenamento de data sets de grandes volumes

Processamento paralelo em grande velocidade

Facilidade em tratar de fontes de dados variadas

Variabilidade nos formatos dos dados

– estruturados e não estruturados (schemaless)

90% com Projetos Piloto com

Hadoop no final de 2012 Fonte: gigaom.com

Page 12: MySQL Cluster e Big Data

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

Escalabilidade horizontal para milhares de nós

– Hardware commodity ou Cloud

Alta-disponibilidade com replicação e self-healing

Inicialmente modelo de processamento batch (Map/Reduce)

– Extensível com queries interativas via Apache Drill, Cloudera Impala,

Stinger etc.

Por que Hadoop? (2/2) Projetado para resolver problemas de Big Data

Page 13: MySQL Cluster e Big Data

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

Caso de uso: Loja On-Line

Usuários Navegação

Recomendações

Web Logs:

Páginas Visitadas,

Comentários, Posts

Perfil,

Histórico de

Compras

Recomendações

Interações em Mídias

Sociais, Preferências,

Marcas com “Curtir”

Conversas Telefônicas,

mensagens

Page 14: MySQL Cluster e Big Data

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

sistema de publicidade online que identifica o visitante e exibe conteúdo direcionado ao seu perfil

2 TB de web logs são capturados, com 22 bilhões de linhas por mês processadas pelo MySQL

Atualmente, considerando apenas uma instância MySQL, há 8 TB de dados armazenados com 5GB de crescimento por dia

Caso de Sucesso

Big Data

“O MySQL é uma parte essencial da nossa

estratégia de Big Data. A integração com

Hadoop permite-nos melhorar e crescer o nosso

negócio de publicidade digital com rapidez e

agilidade.”

Josafá Santos

IT Manager, boo-box

mysql.com/why-mysql/case-studies/1billion-advertisements-mysql-hadoop.html

Page 15: MySQL Cluster e Big Data

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

boo-box

Page 16: MySQL Cluster e Big Data

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

BI Solutions

ACQUIRE

ORGANIZE ANALYZE

DECIDE

Hadoop

Applier

Big Data Lifecycle com MySQL+Hadoop

Page 17: MySQL Cluster e Big Data

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

Novo: MySQL Hadoop Applier

Integração em tempo real do

MySQL para Hadoop

Cada tabela mapeada para

um diretório Hive data

warehouse

Possibilita usufruir de

ferramentas de análise do

eco-sistema Hadoop

Construído sobre MySQL

Binlog API e libhdfs library

Artigos dev.mysql.com

Download labs.mysql.com

Page 18: MySQL Cluster e Big Data

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

Mais sobre como MySQL e Big Data

Whitepaper:

MySQL and Hadoop – Big Data Integration

December 2012

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

and-hadoop-guide-to-big-data-integration

Page 19: MySQL Cluster e Big Data

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

MySQL+Hadoop

Page 20: MySQL Cluster e Big Data

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

O que é o MySQL Cluster?

Page 21: MySQL Cluster e Big Data

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

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 22: MySQL Cluster e Big Data

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

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 23: MySQL Cluster e Big Data

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

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 24: MySQL Cluster e Big Data

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

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 25: MySQL Cluster e Big Data

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

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 26: MySQL Cluster e Big Data

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

NDB + InnoDB

InnoDB

externo

InnoDB

local

NDB Cluster Data Nodes

MySQL Cluster

Replicação

Síncrona

Replicação

Assíncrona

NDB API

Page 27: MySQL Cluster e Big Data

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

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 28: MySQL Cluster e Big Data

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

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 29: MySQL Cluster e Big Data

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

Alguns Clientes MySQL Cluster

Page 30: MySQL Cluster e Big Data

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

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 31: MySQL Cluster e Big Data

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

Page 32: MySQL Cluster e Big Data

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

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 33: MySQL Cluster e Big Data

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

PayPal

Page 34: MySQL Cluster e Big Data

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

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 35: MySQL Cluster e Big Data

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

Playful Play

Page 36: MySQL Cluster e Big Data

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

MySQL Cluster

Customers

mysql.com/customers/cluster

Page 37: MySQL Cluster e Big Data

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

Como começar a usar

o MySQL Cluster?

Page 38: MySQL Cluster e Big Data

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

MySQL Cluster Auto-Install

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

Page 39: MySQL Cluster e Big Data

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

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 40: MySQL Cluster e Big Data

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

Teste via MySQL Workbench

Page 41: MySQL Cluster e Big Data

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

Teste via MySQL Workbench 2/2

Page 42: MySQL Cluster e Big Data

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

<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 43: MySQL Cluster e Big Data

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

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 44: MySQL Cluster e Big Data

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

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 45: MySQL Cluster e Big Data

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

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 46: MySQL Cluster e Big Data

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

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 47: MySQL Cluster e Big Data

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

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 48: MySQL Cluster e Big Data

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

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 49: MySQL Cluster e Big Data

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

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 50: MySQL Cluster e Big Data

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

Como o MySQL Cluster funciona?

Page 51: MySQL Cluster e Big Data

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

Data Layer

Application Layer

Management

mgm_ndbd

MySQL Cluster: arquitetura simplificada

mysqld

Clients

MySQL Cluster Data Nodes

ndbd ndbd ndbd ndbd

Page 52: MySQL Cluster e Big Data

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

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 53: MySQL Cluster e Big Data

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

Data Node 1

Data Node 2

Data Node 3

Data Node 4

Table T1

P2

P3

P4

P1

Data Sharding: escalando ESCRITAS

Page 54: MySQL Cluster e Big Data

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

Data Node 1

Data Node 2

F1

Data Node 3

Data Node 4

Table T1

P2

P3

P4

P1

Data Sharding: escalando ESCRITAS

Page 55: MySQL Cluster e Big Data

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

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 56: MySQL Cluster e Big Data

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

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 57: MySQL Cluster e Big Data

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

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 58: MySQL Cluster e Big Data

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

Data Layer

Application Layer

Management

mgm_ndbd

MySQL Cluster: auto-sharding

Table T1

P2

P3

P4

P1 F1

F3

F3

F1 F2

F4

F4

F2

ndbd ndbd ndbd ndbd

Clients

mysqld

Table T1

visão da Aplicação

visão MySQL Cluster

SQL

NDB API

Page 59: MySQL Cluster e Big Data

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

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 60: MySQL Cluster e Big Data

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

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 61: MySQL Cluster e Big Data

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

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 62: MySQL Cluster e Big Data

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

Data Node 1

Data Node 2

F1 F3

F3 F1

Data Node 3

Data Node 4

F2

F2

Table T1

P2

P3

P4

P1

Alta-Disponibilidade: Replicação Síncrona

Page 63: MySQL Cluster e Big Data

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

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 64: MySQL Cluster e Big Data

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

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 65: MySQL Cluster e Big Data

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

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 66: MySQL Cluster e Big Data

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

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 67: MySQL Cluster e Big Data

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

Como garantir a durabilidade e performance?

• 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 68: MySQL Cluster e Big Data

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

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 69: MySQL Cluster e Big Data

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

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 70: MySQL Cluster e Big Data

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

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 71: MySQL Cluster e Big Data

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

Data Layer

Clients

Application Layer

Management

MySQL Cluster: NoSQL APIs

Management

ndbd ndbd ndbd ndbd

Page 72: MySQL Cluster e Big Data

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

Os mesmos dados

acessados

simultaneamente

através de interfaces

SQL e NoSQL

APIs de Acesso aos Dados

Page 73: MySQL Cluster e Big Data

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

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 74: MySQL Cluster e Big Data

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

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 75: MySQL Cluster e Big Data

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

Carrier Grade Edition (CGE) - comercial

MySQL Cluster

Suporte

Monitor &

Backup

Plug-ins

Manager

mysql.com/products/cluster/features.html

Page 76: MySQL Cluster e Big Data

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

Aprenda mais…

Page 78: MySQL Cluster e Big Data

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

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 79: MySQL Cluster e Big Data

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

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 80: MySQL Cluster e Big Data

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

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 81: MySQL Cluster e Big Data

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

Sumário

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

"M" do LAMP stack e pode ser usado como solução para problemas de Big

Data.

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 82: MySQL Cluster e Big Data

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

@MySQLBR facebook.com/MySQLBR Obrigado!

Slides disponíves em…

Page 83: MySQL Cluster e Big Data

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

Perguntas?

MySQL Cluster e Big Data – visão geral