Você está na página 1de 22

Paralelismo em Banco de Dados

Fernanda Baio
fernanda.baiao@uniriotec.br

O Problema
Aplicaes que requerem
alto desempenho
Grande volume de dados Alto nmero de requisies ao banco de dados e/ou Requisies (consultas/atualizaes) muito demoradas

aumento de disponibilidade / confiabilidade


replicao de dados

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

Processamento Paralelo
Tradicionalmente utilizado para obteno de alto desempenho em aplicaes de bancos de dados Opes arquiteturais
Servidores Paralelos + SGBDs paralelos Clusters de PCs + SGBDs para clusters Clusters de Bancos de Dados!

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

Cluster de Bancos de Dados


Cluster de PCs executando, em cada n,um Sistema Gerenciador de Bancos de Dados padro. (Akal, 2002) SGBDs
Seqenciais Utilizados como componentes do tipo caixa-preta

Paralelismo
Implementado atravs de uma camada intermediria de software (middleware)
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 4

Cluster de Bancos de Dados


Cluster de PCs

SGBD SGBD

Clientes

Camada Intermediria

SGBD SGBD SGBD

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

Processamento Paralelo e Bancos de Dados


Propriedades de um sistema paralelo ideal
Acelerao linear (linear speed-up) Crescimento linear (linear scale-up)

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

Paralelismo em Bancos de Dados


Caractersticas de SBDP
Distribuio dos Dados
Fragmentao Replicao

Processamento e otimizao de consultas


Paralelismo inter-consultas Paralelismo intra-consulta

Gerncia de Transaes
Balanceamento de Carga

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

Caractersticas de SBDP
Distribuio de dados
Fragmentao Replicao

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

Fragmentao
Alternativa bastante explorada na literatura Vrios trabalhos apresentam bons resultados com o
emprego de tal tcnica Exige novo projeto fsico para o banco de dados Exige a implementao de middleware com funes complexas para a execuo de consultas Pode exigir troca de grandes quantidades de dados entre os ns durante o processamento de uma consulta
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 9

Replicao
Torna simples a migrao do banco de dados Elimina a necessidade de um novo projeto fsico Middleware pode ser mais simples do que na soluo
que emprega fragmentao Requer tcnicas especiais para a manuteno da consistncia entre as rplicas
Atualizao de cpias primrias x qualquer cpia Eager replication x lazy replication

Aplicaes com bases de dados muito grandes teriam dificuldades em utilizar essa soluo por restries de espao de armazenamento
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 10

Caractersticas de SBDP
Processamento e otimizao de consultas
Paralelismo inter-consultas Execuo concorrente de mltiplas consultas de diversos usurios Cada consulta executada seqencialmente Aumento de vazo Paralelismo intra-consulta Decomposio de uma nica consulta em sub-consultas Execuo paralela de mltiplas sub-consulta Reduo do tempo de execuo da consulta Paralelismo Inter-C e Intra-C combinados?!
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 11

Caractersticas de SBDP
Balanceamento de carga
Uniformizar o esforo de cada n de processamento
Distribuindo as requisies ao BD Distribuindo os dados

Objetivos
Evitar sobrecarga de um n Tirar proveito do multiprocessamento

Restries
em que ns esto armazenados os dados acessados pela requisio?
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 12

Soluces existentes de paralelismo em clusters de BD


SGBDs para clusters
PGCluster SmaQ Comerciais
Clusgres MySQL Cluster Oracle 10g (Real Application Cluster) DB2 ICE (Integrated Cluster Environment)

Clusters de Bancos de Dados


Paralelismo Inter-Consultas
Leg@Net C-JDBC

Paralelismo Intra-Consulta
PowerDB

Inter + Intra
Pargres (!!!!)

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

13

Leg@Net
Frana
Lip6, Prologue Software, ASPLine

Explora arquitetura de clusters de bancos de dados usando replicao Prope modelo para balanceamento de carga e garantia de consistncia entre as rplicas Paralelismo inter-consultas Cdigo aberto, linux
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 14

PowerDB
Sua
Instituto Federal de Tecnologia de Zurique

Explora arquitetura de clusters de bancos de dados usando Fragmentao virtual


tamanho fixo dos fragmentos

Prope tcnicas de roteamento de consultas para balanceamento de carga Paralelismo intra-consulta para aplicaes OLAP
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 15

MySQL Cluster
Explora arquitetura de clusters de bancos de dados usando replicao Trabalha com os dados em memria principal Paralelismo inter consultas

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

16

C-JDBC
Middleware com API padro para permitir a conexo de aplicaes Java com uma grande variedade de SGBDs relacionais Explora arquitetura de clusters de bancos de dados fornecendo transparncia aplicao Possui recursos para balanceamento de carga, cache de consultas e recuperao a falhas Paralelismo inter-consultas
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 17

Postgres-R
Suca Modificao do cdigo-fonte do Postgres para ganhar caractersticas de SGBD paralelo Explora arquitetura de clusters de bancos de dados usando replicao total Prope tcnicas de controle de concorrncia e protocolo eager replication para atualizao de rplicas Arquitetura multi-master No trata balanceamento de carga Paralelismo inter consultas
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 18

Avaliao das solues existentes


Balanceamento de carga Itens Circular Leg@net PowerDB C-JDBC PostgresR MySQL Cluster SmaQ Circular Com peso MRPP Modelo de replicao Parcial Total Paralelismo de consultas Aplicao foco

Benchmark Inter

Intra
N/A

OLTP -

OLAP TPC-W TPC-R TPC-W Benchmark prprio Benchmark prprio TPC-H

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

19

ParGRES: Alto desempenho em Aplicaes OLAP


Fernanda Baio Departamento de Informtica Aplicada - UNIRIO fernanda.baiao@uniriotec.br

Cenrio
Tomada de Decises

Tomar a ao apropriada considerando-se nveis de risco e incerteza assumidos

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

21

Realidade dos BD corporativos


Sales Marketing Finance Rates Customer Service MIS

Demographics Contracts

General Ledger Promotions Product Planning

Product Info Market Data Purchasing Accounting Competitive Info

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

22

O que queremos?
Informao!
Mas, de que forma? Com : Agilidade
Flexibilidade Uma nica verso da verdade
Sales Marketing Finance Rates/ Regulatory Customer Service MIS

Paralelismo em Bancos de Dados

Product Data Customer Data Sales Data Market Data G/L Data Revenue Data Equipe Pargres, Fernanda External Data Baio

23

Data Warehouse

Uma coleo de dados... Orientados ao assunto Integrados No volteis Variantes no tempo ... Para fornecer suporte ao processo de tomada de decises na organizao [Inmon, 92]

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

24

Ambiente de Data Warehouse


Integrar dados de mltiplas fontes Facilitar o processo de anlise sem impacto para o ambiente de dados operacionais Obter informao de qualidade Atender diferentes tipos de usurios finais Flexibilidade e agilidade para atender novas anlises
Aplicao SD
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio

BDs Operacionais

DW

Ferramenta Aplicao DBMKT OLAP


25

Aplicaes OLAP
(On-Line Analytical Processing)
Objetivo
Apoio tomada de decises

Caractersticas principais
Consultas de alto custo
Demandam muito tempo de processamento Envolvem grande volume de dados Ad-hoc (Gorla, 2003)

Operaes de atualizao controladas


Realizadas em perodos pr-definidos
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 26

Questes crticas no ambiente de DW


Envolvimento dos usurios Abordagem incremental e iterativa Apresentao dos dados
simplicidade, clareza de semntica, nveis distintos de detalhe

Esteja preparado para mudanas Desempenho


Otimizao de consultas OLAP!!!!!!!!!
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 27

Problema

Como obter alto desempenho no processamento de consultas OLAP de alto custo?

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

28

Desafio
Como obter alto desempenho no processamento de consultas de alto custo?
de maneira pouco dispendiosa? dispendiosa de maneira no intrusiva? intrusiva
mantendo os programas de aplicao e os acessos ao SGBD intactos no mudando de SGBD no alterando o esquema lgico do banco de dados

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

29

Processamento Paralelo Opes Arquiteturais


Servidores Paralelos + SGBDs paralelos Clusters de PCs + SGBDs para clusters

Clusters de Bancos de Dados!

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

30

10

Cluster de Bancos de Dados


(Relembrando)
Cluster de PCs executando, em cada n,um Sistema Gerenciador de Bancos de Dados padro. (Akal, 2002) SGBDs
Seqenciais Utilizados como componentes do tipo caixa-preta

Paralelismo
Implementado atravs de uma camada intermediria de software (middleware)
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 31

Cluster de Bancos de Dados


Cluster de PCs

SGBD SGBD

Clientes

Camada Intermediria

SGBD SGBD SGBD

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

32

Paralelismo em Bancos de Dados


Caractersticas de SBP
Distribuio dos Dados
Fragmentao Replicao

Processamento e otimizao de consultas


Paralelismo inter-consultas Paralelismo intra-consulta

Gerncia de Transaes
Balanceamento de Carga

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

33

11

Distribuio de dados

Fragmentao Horizontal Vertical

Replicao
Total Parcial

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

34

Fragmentao
Vantagens Alternativa bastante explorada na literatura Vrios trabalhos apresentam bons resultados Desvantagens Exige novo projeto fsico para o banco de dados Exige a implementao de middleware com funes complexas para a execuo de consultas Pode exigir troca de grandes quantidades de dados entre os ns durante o processamento de uma consulta

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

35

Replicao
Vantagens Torna simples a migrao do banco de dados Elimina a necessidade de um novo projeto fsico Desvantagens Middleware pode ser mais simples Requer tcnicas especiais para a manuteno da consistncia entre as rplicas Exigncia de espao de armazenamento

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

36

12

Distribuio de dados

Fragmentao Horizontal Vertical

Replicao
Total Parcial

Fragmentao + Replicao! Fragmentao Virtual


Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 37

Fragmentao Virtual
Objetivo: forar cada SGBD a processar uma mesma consulta sobre subconjuntos distintos de dados atravs da adio de predicados definindo intervalos de dados
Sub -Query 1

C1 C2 C3 C4

PostgreSQL DBMS

Sub -Query 2 Original Query

PostgreSQL DBMS

Sub -Query 3

PostgreSQL DBMS

Sub -Query 4

PostgreSQL DBMS

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

38

Fragmentao Virtual
Select sum(price) from ITEM where item_no >= 1 and item_no < 250,001 Select sum(price) from ITEM where item_no >= 250,001 and item_no < 500,001

Select sum(price) from ITEM


Select sum(price) from ITEM where item_no >= 500,001 and item_no < 750,001 Select sum(price) from ITEM where item_no >= 750,001 and item_no < 1,000,001

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

39

13

Fragmentao Virtual Adaptativa


PostgreSQL DBMS

PostgreSQL DBMS Original Query PostgreSQL DBMS

PostgreSQL DBMS

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

Subconsultas

40

Processamento e otimizao de consultas


Paralelismo inter-consultas Execuo concorrente de mltiplas consultas de diversos usurios Cada consulta executada seqencialmente Aumento de vazo Paralelismo intra-consulta Decomposio de uma nica consulta em sub-consultas Execuo paralela de mltiplas sub-consulta Reduo do tempo de execuo da consulta Paralelismo Inter-C e Intra-C combinados?!

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

41

Balanceamento de carga
Uniformizar o esforo de cada n de processamento
Distribuindo as requisies ao BD Distribuindo os dados

Objetivos
Evitar sobrecarga de um n Tirar proveito do multiprocessamento

Restries
em que ns esto armazenados os dados acessados pela requisio?

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

42

14

Paralelismo em clusters de BD Solues existentes


IntraInterBaixo Atualiz. Disp. consulta consulta custo Indep. de SGBD Licena LPGL LGPL GPL BSD

Pargres C-JDBC
Cluster de SGBD

? ?

PGReplicator Slony-1 PowerDB/FAS PowerDB/SVP PGCluster Oracle 10g/RAC MySQL Cluster

? ? BSD Com. GPL/Com.

SGBD para cluster

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

43

Pargres
Middleware para clusters de bancos de dados voltado para consultas de alto custo
tpicas de aplicaes OLAP

Implementa Paralelismo Inter & Intra-Consulta Fragmentao Virtual Adaptativa Utiliza o SGBD livre PostgreSQL
Sem adaptaes para execuo em clusters de Pcs

http://forge.objectweb.org/projects/pargres
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 44

Pargres
PC-Cluster

PostgreSQL PostgreSQL PostgreSQL PostgreSQL PostgreSQL

Clientes

PARGRES

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

45

15

Viso Geral soluo Pargres


Application Server PostgreSQL JDBC driver JVM PostgreSQL database

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

46

Viso Geral soluo Pargres


Application Server ParGRES JDBC driver JVM ParGRES Server PostgreSQL JDBC driver JVM PostgreSQL database

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

47

Viso Geral soluo Pargres

JDBC

Internet

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

48

16

Viso Geral soluo Pargres


Cluster de PCs

JDBC

JDBC

Internet

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

49

Arquitetura do ParGRES

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

50

Arquitetura do ParGRES
CQP
Translator

CQP

Analisador sinttico que faz parser das consultas Prov transparncia no paralelismo intra-C Gramtica SQL-99
Recursos no suportados da linguagem enviados diretamente ao SGBD

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

51

17

Arquitetura do ParGRES
CQP

CQP

Componente principal da arquitetura Papel de coordenador Deciso intra-C x inter-C Composio de resultados Gerncia das transaes distribudas

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

52

Arquitetura do ParGRES
Gerncia de transaes Distribudas
Time t1
W1 R3

Time t2

Time t3

Time t4

R1

R2

W1

R3

R3

ParGRES

ParGRES
R1 R2 DBMS

ParGRES
W1 DBMS W1 DBMS

ParGRES
R3 DBMS DBMS

DBMS

DBMS

DBMS

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

53

Pargres
Alto desempenho em consultas pesadas:
escalvel, no centralizada disponibilidade no necessita modificar a aplicao cliente independente de fabricante SBGD uso de hardware commodity

Implementa Paralelismo Inter & Intra-Consulta


Replicao Total e Fragmentao Virtual Adaptativa
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 54

18

Pargres
Compatvel com SQL-ANSI/99 Usa o SGBD livre PostgreSQL verso 8.0.3
Sem adaptaes para execuo em clusters de Pcs

Desenvolvido em Java JDBC verso 3.0 Console texto/web

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

55

Pargres Admin

Submisso de consultas online Adio/remoco de NQPs Atualizao do catlogo

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

56

Comparativo
IntraInterBaixo Atualiz. Disp. consulta consulta custo Indep. de SGBD Licena LPGL LGPL GPL BSD

Pargres C-JDBC
Cluster de SGBD

? ?

PGReplicator Slony-1 PowerDB/FAS PowerDB/SVP PGCluster Oracle 10g/RAC MySQL Cluster

? ? BSD Com. GPL/Com.

Paralelismo em Bancos de Dados

SGBD para cluster

Equipe Pargres, Fernanda Baio

57

19

Validao Experimental
Benchmark TPC-H
Supplier
PK: suppkey 50,000 tuplas

Partsupp
PK: partkey, suppkey 4,000,000 tuplas

Part
PK: partkey 1,000,000 tuplas

Lineitem Nation
PK: nationkey 25 tuplas PK: orderkey, linenumber 29,999,795 tuplas

Orders
PK: orderkey 7,500,000 tuplas

Region
PK: regionkey 5 tuplas

Customer
PK: custkey 750,000 tuplas

Fator de escala = 5
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 58

Validao Experimental
Cluster de 32 ns no INRIA Cada n do cluster
Dois processadores 2.2 GHz Opteron, 2 GB RAM, 30 GB HD. Ns interconectados em rede Gigabit Ethernet Instncia do PostgreSQL 8

Resultados mediram speed-up das consultas variando o nmero de ns do cluster


Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 59

Validao Experimental

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

60

20

Trabalhos relacionados e futuros


Fragmentao fsica [Furtado e Mattoso - COPPE]
Reduzir o problema do espao em disco

Projeto CG-OLAP [Tanaka, Baiao, Diniz UNIRIO]


Aplicao no domnio de Geo-Processamento Novas tcnicas e protocolos de comunicao no cluster Novas tcnicas de distribuio dos dados

Paralelismo em Bancos de Dados

Equipe Pargres, Fernanda Baio

61

Mais Informaes
http://pargres.nacad.ufrj.br Mattoso et al., ParGRES: uma camada de processamento paralelo de consultas sobre o PostgreSQL, Workshop de Software Livre, FISL 2005 Mattoso et al., ParGRES: Middleware para Processamento Paralelo de Consultas OLAP em Clusters de Banco de Dados SBBD-Demos 2005

http://www.objectweb.org/
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 62

Concluso
Clusters de SGBDs e Processamento paralelo
Aumento de desempenho de aplicaes com acesso intensivo a SGBDs Baixo custo

Pargres
Uma soluo leve para alto desempenho de consultas OLAP em clusters de BD Pouco intrusiva Componentes j consolidados Cluster de PCs sem uso de hardware especfico Desenvolvimento sobre o PostgreSQL Padro SQL-99 Software livre
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 63

21

Paralelismo em Banco de Dados


Fernanda Baio Equipe Pargres
baiao@cos.ufrj.br http://pargres.nacad.ufrj.br

22