05 - bdpar - paralelismo em bancos de dados
TRANSCRIPT
-
1Paralelismo emBanco de Dados
Fernanda [email protected]
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 2
O Problema
z Aplicaes que requeremz alto desempenho
z Grande volume de dadosz Alto nmero de requisies ao banco de dados
e/ouRequisies (consultas/atualizaes) muito demoradas
z aumento de disponibilidade / confiabilidadez replicao de dados
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 3
Processamento Paralelo
z Tradicionalmente utilizado para obteno de alto desempenho em aplicaes de bancos de dados
z Opes arquiteturaisz Servidores Paralelos + SGBDs paralelos
z Clusters de PCs + SGBDs para clusters
z Clusters de Bancos de Dados!
-
2Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 4
Cluster de Bancos de Dados
z Cluster de PCs executando, em cada n,um Sistema Gerenciador de Bancos de Dados padro. (Akal, 2002)
z SGBDs z Seqenciaisz Utilizados como componentes do tipo caixa-preta
z Paralelismoz Implementado atravs de uma camada intermediria
de software (middleware)
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 5
Cluster de Bancos de Dados
CamadaIntermediria
SGBDSGBD
SGBDSGBD
SGBDSGBD
SGBDSGBD
SGBDSGBD
Cluster de PCs
Clientes
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 6
Processamento Paralelo e Bancos de Dados
z Propriedades de um sistema paralelo ideal
Acelerao linear Crescimento linear(linear speed-up) (linear scale-up)
-
3Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 7
Paralelismo em Bancos de Dados
z Caractersticas de SBDPz Distribuio dos Dados
z Fragmentaoz Replicao
z Processamento e otimizao de consultasz Paralelismo inter-consultasz Paralelismo intra-consulta
z Gerncia de Transaesz Balanceamento de Carga
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 8
Caractersticas de SBDP
z Distribuio de dadosz Fragmentao
z Replicao
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 9
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
-
4Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 10
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 11
Caractersticas de SBDPz Processamento e otimizao de consultas
z Paralelismo inter-consultasz Execuo concorrente de mltiplas consultas de diversos
usuriosz Cada consulta executada seqencialmentez Aumento de vazo
z Paralelismo intra-consulta z Decomposio de uma nica consulta em sub-consultasz Execuo paralela de mltiplas sub-consultaz Reduo do tempo de execuo da consulta
z Paralelismo Inter-C e Intra-C combinados?!
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 12
Caractersticas de SBDP
z Balanceamento de carga z Uniformizar o esforo de cada n de processamento
z Distribuindo as requisies ao BDz Distribuindo os dados
z Objetivos z Evitar sobrecarga de um nz Tirar proveito do multiprocessamento
z Restriesz em que ns esto armazenados os dados acessados pela
requisio?
-
5Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 13
Soluces existentes de paralelismo em clusters de BDz SGBDs para clusters
z PGClusterz SmaQz Comerciais
z Clusgresz MySQL Clusterz Oracle 10g (Real Application Cluster)z DB2 ICE (Integrated Cluster Environment)
z Clusters de Bancos de Dadosz Paralelismo Inter-Consultas
z Leg@Netz C-JDBC
z Paralelismo Intra-Consultaz PowerDB
z Inter + Intrazz PargresPargres (!!!!)(!!!!)
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 14
Leg@Netz Frana
z Lip6, Prologue Software, ASPLine
z Explora arquitetura de clusters de bancos de dados usando replicao
z Prope modelo para balanceamento de carga e garantia de consistncia entre as rplicas
z Paralelismo inter-consultasz Cdigo aberto, linux
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 15
PowerDBz Sua
z Instituto Federal de Tecnologia de Zurique
z Explora arquitetura de clusters de bancos de dados usando Fragmentao virtual z tamanho fixo dos fragmentos
z Prope tcnicas de roteamento de consultas para balanceamento de carga
z Paralelismo intra-consulta para aplicaes OLAP
-
6Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 16
MySQL Clusterz Explora arquitetura de
clusters de bancos de dados usando replicao
z Trabalha com os dados em memria principal
z Paralelismo inter consultas
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 17
C-JDBCz Middleware com API padro
para permitir a conexo de aplicaes Java com uma grande variedade de SGBDs relacionais
z Explora arquitetura de clusters de bancos de dados fornecendo transparncia aplicao
z Possui recursos para balanceamento de carga, cache de consultas e recuperao a falhas
z Paralelismo inter-consultas
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 18
Postgres-Rz Sucaz Modificao do cdigo-fonte do
Postgres para ganhar caractersticas de SGBD paralelo
z Explora arquitetura de clusters de bancos de dados usando replicao total
z Prope tcnicas de controle de concorrncia e protocolo eagerreplication para atualizao de rplicas
z Arquitetura multi-masterz No trata balanceamento de
cargaz Paralelismo inter consultas
-
7Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 19
Avaliao das solues existentes
TPC-H3-333-3--SmaQ
Benchmarkprprio-3N/A3-3--3
MySQLCluster
Benchmarkprprio-3-33---3PostgresR
TPC-W-3-333333C-JDBCTPC-R3-333-3-3PowerDBTPC-W-3-33---3Leg@net
OLAPOLTPIntraInterTotalParcialMRPPCircular
Com peso
CircularBenchmark
Aplicao focoParalelismo deconsultasModelo dereplicaoBalanceamento de carga
Itens
ParGRES: Alto desempenho em
Aplicaes OLAPFernanda Baio
Departamento de Informtica Aplicada- UNIRIO
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 21
CenrioTomada de Decises
Tomar a ao apropriadaconsiderando-se nveis de risco e incertezaassumidos
-
8Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 22
Realidade dos BD corporativos
Sales Marketing Finance Rates CustomerService
MIS
Demographics General Ledger
Product PlanningPromotions
Product Info
Competitive Info
Market Data
AccountingPurchasing
Contracts
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 23
O que queremos?
Sales Marketing Finance Rates/Regulatory
CustomerService
MIS
Product DataCustomer Data
Sales DataMarket Data
G/L DataRevenue DataExternal Data
Informao!
9 Agilidade9 Flexibilidade9 Uma nica verso da verdade
Mas, de que forma? Com :
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 24
Data Warehouse
Uma coleo de dados...Orientados ao assuntoIntegradosNo volteisVariantes no tempo
... Para fornecer suporte ao processo de tomada de decises na organizao [Inmon, 92]
-
9Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 25
Ambiente de Data Warehouse
z Integrar dados de mltiplas fontes
z Facilitar o processo de anlise semimpacto para o ambiente de dados operacionais
z Obter informao de qualidade
z Atender diferentes tipos de usuriosfinais
z Flexibilidade e agilidade paraatender novas anlises
BDs Operacionais
DW
AplicaoSD
FerramentaOLAP
AplicaoDBMKT
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 26
Aplicaes OLAP(On-Line Analytical Processing)
z Objetivoz Apoio tomada de decises
z Caractersticas principaisz Consultas de alto custo
z Demandam muito tempo de processamentoz Envolvem grande volume de dadosz Ad-hoc (Gorla, 2003)
z Operaes de atualizao controladasz Realizadas em perodos pr-definidos
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 27
Questes crticas no ambiente de DW
z Envolvimento dos usuriosz Abordagem incremental e iterativaz Apresentao dos dados
z simplicidade, clareza de semntica, nveis distintosde detalhe
z Esteja preparado para mudanasz Desempenho
zz OtimizaoOtimizao de de consultasconsultas OLAP!!!!!!!!!OLAP!!!!!!!!!
-
10
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 28
Problema
Como obter alto desempenho no processamento de consultas OLAP
de alto custo?
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 29
Desafio
Como obter alto desempenho no processamento de consultas de alto
custo?z de maneira pouco dispendiosapouco dispendiosa?z de maneira no intrusivano 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 30
Processamento ParaleloOpes Arquiteturais
z Servidores Paralelos + SGBDs paralelos
z Clusters de PCs + SGBDs para clusters
zz Clusters de Bancos Clusters de Bancos de Dados!de Dados!
-
11
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 31
Cluster de Bancos de Dados(Relembrando)
z Cluster de PCs executando, em cada n,um Sistema Gerenciador de Bancos de Dados padro. (Akal, 2002)
z SGBDs z Seqenciaisz Utilizados como componentes do tipo caixa-preta
z Paralelismoz Implementado atravs de uma camada intermediria
de software (middleware)
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 32
Cluster de Bancos de Dados
CamadaIntermediria
SGBDSGBD
SGBDSGBD
SGBDSGBD
SGBDSGBD
SGBDSGBD
Cluster de PCs
Clientes
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 33
Paralelismo em Bancos de Dados
z Caractersticas de SBPz Distribuio dos Dados
z Fragmentaoz Replicao
z Processamento e otimizao de consultasz Paralelismo inter-consultasz Paralelismo intra-consulta
z Gerncia de Transaesz Balanceamento de Carga
-
12
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 34
Distribuio de dados
z Fragmentaoz Horizontalz Vertical
z Replicaoz Totalz Parcial
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 35
Fragmentao
Exige novo projeto fsico para o banco de dados
Alternativa bastante explorada na literatura
Exige a implementao de middleware com funes
complexas para a execuo de consultas
Vrios trabalhos apresentam bons resultados
Pode exigir troca de grandes quantidades de dados entre os ns durante o processamento de uma
consulta
DesvantagensVantagens
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 36
Replicao
Middleware pode ser mais simplesTorna simples a migrao do banco de dados
Requer tcnicas especiais para a manuteno da consistncia entre
as rplicas
Elimina a necessidade de um novo projeto fsico
Exigncia de espao de armazenamento
DesvantagensVantagens
-
13
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 37
Distribuio de dados
z Fragmentaoz Horizontalz Vertical
z Replicaoz Totalz Parcial
Fragmentao + Replicao!
Fragmentao Virtual
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 38
Fragmentao Virtual
z Objetivo: forar cada SGBD a processar uma mesma consulta sobre subconjuntos distintos de dados atravs da adio de predicados definindo intervalos de dados
OriginalQuery
Sub -Query2
Sub -Query3
Sub -Query4
Sub -Query1 DBMS
DBMS
DBMS
DBMS
CC2
C3
C4
C1 DBMSPostgreSQL
DBMSPostgreSQL
DBMSPostgreSQL
DBMSPostgreSQL
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 39
Fragmentao Virtual
Select sum(price) from ITEM
Select sum(price) from ITEM
where item_no >= 1
and item_no < 250,001
Select sum(price) from ITEM
where item_no >= 1
and item_no < 250,001
Select sum(price) from ITEM
where item_no >= 500,001
and item_no < 750,001
Select sum(price) from ITEM
where item_no >= 500,001
and item_no < 750,001
Select sum(price) from ITEM
where item_no >= 250,001
and item_no < 500,001
Select sum(price) from ITEM
where item_no >= 250,001
and item_no < 500,001
Select sum(price) from ITEM
where item_no >= 750,001
and item_no < 1,000,001
Select sum(price) from ITEM
where item_no >= 750,001
and item_no < 1,000,001
-
14
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 40
Fragmentao Virtual Adaptativa
OriginalQuery
DBMS
DBMS
DBMS
DBMS
C
DBMSPostgreSQL
DBMSPostgreSQL
DBMSPostgreSQL
DBMSPostgreSQL
Subconsultas
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 41
Processamento e otimizao de consultas
z Paralelismo inter-consultasz Execuo concorrente de mltiplas consultas de diversos
usuriosz Cada consulta executada seqencialmentez Aumento de vazo
z Paralelismo intra-consulta z Decomposio de uma nica consulta em sub-consultasz Execuo paralela de mltiplas sub-consultaz Reduo do tempo de execuo da consulta
z Paralelismo Inter-C e Intra-C combinados?!
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 42
Balanceamento de cargaz Uniformizar o esforo de cada n de processamento
z Distribuindo as requisies ao BDz Distribuindo os dados
z Objetivos z Evitar sobrecarga de um nz Tirar proveito do multiprocessamento
z Restriesz em que ns esto armazenados os dados acessados pela
requisio?
-
15
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 43
Paralelismo em clusters de BDSolues existentes
Intra- consulta Inter-
consulta Atualiz. Baixo custo Disp.
Indep. de
SGBDLicena
Pargres LPGL C-JDBC LGPL PGReplicator GPL Slony-1 BSD PowerDB/FAS ? ?
Clu
ster
de
SG
BD
PowerDB/SVP ? ? PGCluster BSD Oracle 10g/RAC Com.
SGBD
par
a cl
uste
r
MySQL Cluster GPL/Com.
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 44
Pargres
z Middleware para clusters de bancos de dados voltado para consultas de alto custo z tpicas de aplicaes OLAP
z Implementa Paralelismo Inter & Intra-Consultaz Fragmentao Virtual Adaptativaz Utiliza o SGBD livre PostgreSQL
z Sem adaptaes para execuo em clusters de Pcsz http://forge.objectweb.org/projects/pargres
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 45
Pargres
PARGRES
PostgreSQLPC-Cluster
Clientes
PostgreSQL
PostgreSQL
PostgreSQL
PostgreSQL
-
16
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 46
PostgreSQLJDBC driver
PostgreSQLdatabase
ApplicationServer
JVM
Viso Geral soluo Pargres
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 47
PostgreSQLJDBC driver
PostgreSQLdatabase
ApplicationServer
JVM
Viso Geral soluo Pargres
ParGRESJDBC driver
ParGRESServer
JVM
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 48
Viso Geral soluo Pargres
Internet
JDBC
-
17
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 49
Viso Geral soluo Pargres
Internet
JDBC JDBC
Cluster de PCs
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 50
Arquitetura do ParGRES
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 51
Arquitetura do ParGRES
z Analisador sinttico que faz parser das consultas
z Prov transparncia no paralelismo intra-C
z Gramtica SQL-99z Recursos no
suportados da linguagem enviados diretamente ao SGBD
CQP
Translator
CQP
-
18
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 52
Arquitetura do ParGRES
z Componente principal da arquitetura
z Papel de coordenadorz Deciso intra-C x inter-Cz Composio de
resultadosz Gerncia das transaes
distribudas
CQP
CQP
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 53
Arquitetura do ParGRES
z Gerncia de transaes Distribudas
W1 R3
R1 R2
ParGRES
Time t1
DBMS DBMS
W1 R3
ParGRES
Time t2
DBMS DBMS
R1 R2
R3
ParGRES
Time t3
DBMS DBMS
W1 W1
ParGRES
Time t4
DBMS DBMS
R3
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 54
Pargres
z Alto desempenho em consultas pesadas:z escalvel, no centralizadaz disponibilidadez no necessita modificar a aplicao clientez independente de fabricante SBGDz uso de hardware commodity
z Implementa Paralelismo Inter & Intra-Consultaz Replicao Total e Fragmentao Virtual
Adaptativa
-
19
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 55
Pargres
z Compatvel com SQL-ANSI/99z Usa o SGBD livre PostgreSQL verso 8.0.3
z Sem adaptaes para execuo em clusters de Pcsz Desenvolvido em Javaz JDBC verso 3.0 z Console texto/web
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 56
Pargres Admin
z Submisso de consultas on-line
z Adio/remocode NQPs
z Atualizao do catlogo
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 57
Comparativo
Intra- consulta Inter-
consulta Atualiz. Baixo custo Disp.
Indep. de
SGBDLicena
Pargres LPGL C-JDBC LGPL PGReplicator GPL Slony-1 BSD PowerDB/FAS ? ?
Clu
ster
de
SG
BD
PowerDB/SVP ? ? PGCluster BSD Oracle 10g/RAC Com.
SGBD
par
a cl
uste
r
MySQL Cluster GPL/Com.
-
20
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 58
Validao Experimentalz Benchmark TPC-H
LineitemPK: orderkey, linenumber
29,999,795 tuplas
LineitemPK: orderkey, linenumber
29,999,795 tuplas
OrdersPK: orderkey
7,500,000 tuplas
OrdersPK: orderkey
7,500,000 tuplas
PartsuppPK: partkey, suppkey
4,000,000 tuplas
PartsuppPK: partkey, suppkey
4,000,000 tuplas
PartPK: partkey
1,000,000 tuplas
PartPK: partkey
1,000,000 tuplas
SupplierPK: suppkey50,000 tuplas
SupplierPK: suppkey50,000 tuplas
CustomerPK: custkey
750,000 tuplas
CustomerPK: custkey
750,000 tuplas
NationPK: nationkey
25 tuplas
NationPK: nationkey
25 tuplas
RegionPK: regionkey
5 tuplas
RegionPK: regionkey
5 tuplas
Fator de escala = 5
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 59
Validao Experimental
z Cluster de 32 ns no INRIAz Cada n do cluster
z Dois processadores 2.2 GHz Opteron, 2 GB RAM, 30 GB HD.
z Ns interconectados em rede Gigabit Ethernetz Instncia do PostgreSQL 8
z Resultados mediram speed-up das consultas variando o nmero de ns do cluster
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 60
Validao Experimental
-
21
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 61
Trabalhos relacionados e futuros
z Fragmentao fsica [Furtado e Mattoso - COPPE]z Reduzir o problema do espao em disco
z Projeto CG-OLAP [Tanaka, Baiao, Diniz UNIRIO]z Aplicao no domnio de Geo-Processamentoz Novas tcnicas e protocolos de comunicao no clusterz Novas tcnicas de distribuio dos dados
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 62
Mais Informaesz http://pargres.nacad.ufrj.br
z Mattoso et al., ParGRES: uma camada de processamento paralelo de consultas sobre o PostgreSQL, Workshop de Software Livre, FISL 2005
z Mattoso et al., ParGRES: Middleware para Processamento Paralelo de Consultas OLAP em Clusters de Banco de DadosSBBD-Demos 2005
z http://www.objectweb.org/
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baio 63
Conclusoz Clusters de SGBDs e Processamento paralelo
z Aumento de desempenho de aplicaes com acesso intensivo a SGBDs
z Baixo custoz Pargres
z Uma soluo leve para alto desempenho de consultas OLAP em clusters de BD
z Pouco intrusivaz Componentes j consolidadosz Cluster de PCs sem uso de hardware especficoz Desenvolvimento sobre o PostgreSQL
z Padro SQL-99z Software livre
-
22
Paralelismo emBanco de Dados
Fernanda BaioEquipe Pargres
[email protected]://pargres.nacad.ufrj.br