1
Paralelismo emBanco de Dados
Fernanda Baiã[email protected]
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 2
O Problema
Aplicações que requeremalto desempenho
Grande volume de dadosAlto número de requisições ao banco de dados e/ouRequisições (consultas/atualizações) muito demoradas
aumento de disponibilidade / confiabilidadereplicação de dados
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 3
Processamento Paralelo
Tradicionalmente utilizado para obtenção de alto desempenho em aplicações de bancos de dadosOpções arquiteturais
Servidores Paralelos + SGBDs paralelos
Clusters de PCs + SGBDs para clusters
Clusters de Bancos de Dados!
2
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 4
Cluster de Bancos de Dados
“Cluster de PCs executando, em cada nó,um Sistema Gerenciador de Bancos de Dados padrão.” (Akal, 2002)SGBDs
SeqüenciaisUtilizados como componentes do tipo “caixa-preta”
ParalelismoImplementado através de uma camada intermediária de software (middleware)
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 5
Cluster de Bancos de Dados
CamadaIntermediária
SGBDSGBD
SGBDSGBD
SGBDSGBD
SGBDSGBD
SGBDSGBD
Cluster de PCs
Clientes
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 6
Processamento Paralelo e Bancos de Dados
Propriedades de um sistema paralelo ideal
Aceleração linear Crescimento linear(linear speed-up) (linear scale-up)
3
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 7
Paralelismo em Bancos de Dados
Características de SBDPDistribuição dos Dados
FragmentaçãoReplicação
Processamento e otimização de consultasParalelismo inter-consultasParalelismo intra-consulta
Gerência de TransaçõesBalanceamento de Carga
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 8
Características de SBDP
Distribuição de dadosFragmentação
Replicação
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 9
Fragmentação
☺ Alternativa bastante explorada na literatura
☺ Vários trabalhos apresentam bons resultados com o emprego de tal técnica
Exige novo projeto físico para o banco de dados
Exige a implementação de middleware com funções complexas para a execução de consultas
Pode exigir troca de grandes quantidades de dados entre os nós durante o processamento de uma consulta
4
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 10
Replicação
☺ Torna simples a migração do banco de dados☺ Elimina a necessidade de um novo projeto físico☺ Middleware pode ser mais simples do que na solução
que emprega fragmentaçãoRequer técnicas especiais para a manutenção da consistência entre as réplicas
Atualização de cópias primárias x qualquer cópiaEager replication x lazy replication
Aplicações com bases de dados muito grandes teriam dificuldades em utilizar essa solução por restrições de espaço de armazenamento
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 11
Características de SBDPProcessamento e otimização de consultas
Paralelismo inter-consultasExecução concorrente de múltiplas consultas de diversos usuáriosCada consulta é executada seqüencialmenteAumento de vazão
Paralelismo intra-consulta Decomposição de uma única consulta em sub-consultasExecução paralela de múltiplas sub-consultaRedução do tempo de execução da consulta
Paralelismo Inter-C e Intra-C combinados?!
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 12
Características de SBDP
Balanceamento de carga Uniformizar o esforço de cada nó de processamento
Distribuindo as requisições ao BDDistribuindo os dados
Objetivos Evitar sobrecarga de um nóTirar proveito do multiprocessamento
Restriçõesem que nós estão armazenados os dados acessados pela requisição?
5
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 13
Solucões existentes de paralelismo em clusters de BD
SGBDs para clustersPGClusterSmaQComerciais
ClusgresMySQL ClusterOracle 10g (Real Application Cluster)DB2 ICE (Integrated Cluster Environment)
Clusters de Bancos de DadosParalelismo Inter-Consultas
Leg@NetC-JDBC
Paralelismo Intra-ConsultaPowerDB
Inter + IntraPargresPargres (!!!!)(!!!!)
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 14
Leg@NetFrança
Lip6, Prologue Software, ASPLine
Explora arquitetura de clusters de bancos de dados usando replicaçãoPropõe modelo para balanceamento de carga e garantia de consistência entre as réplicasParalelismo inter-consultasCódigo aberto, linux
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 15
PowerDBSuíça
Instituto Federal de Tecnologia de Zurique
Explora arquitetura de clusters de bancos de dados usando Fragmentação virtual
tamanho fixo dos fragmentosPropõe técnicas de roteamento de consultas para balanceamento de cargaParalelismo intra-consulta para aplicações OLAP
6
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 16
MySQL ClusterExplora arquitetura de clusters de bancos de dados usando replicaçãoTrabalha com os dados em memória principalParalelismo inter consultas
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 17
C-JDBCMiddleware com API padrão para permitir a conexão de aplicações Java com uma grande variedade de SGBDs relacionaisExplora arquitetura de clusters de bancos de dados fornecendo transparência à aplicaçãoPossui recursos para balanceamento de carga, cache de consultas e recuperação a falhas Paralelismo inter-consultas
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 18
Postgres-RSuícaModificação do código-fonte do Postgres para ganhar características de SGBD paralelo Explora arquitetura de clusters de bancos de dados usando replicação totalPropõe técnicas de controle de concorrência e protocolo eagerreplication para atualização de réplicasArquitetura multi-masterNão trata balanceamento de cargaParalelismo inter consultas
7
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 19
Avaliação das soluções existentes
TPC-H----SmaQ
Benchmarkpróprio-N/A---MySQL
Cluster
Benchmarkpróprio-----PostgresR
TPC-W--C-JDBC
TPC-R---PowerDB
TPC-W-----Leg@net
OLAPOLTPIntraInterTotalParcialMRPPCircular
Com peso
CircularBenchmark
Aplicação focoParalelismo deconsultas
Modelo dereplicaçãoBalanceamento de carga
Itens
ParGRES: Alto desempenho em
Aplicações OLAPFernanda Baião
Departamento de Informática Aplicada- UNIRIO
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 21
CenárioTomada de Decisões
Tomar a ação apropriadaconsiderando-se níveis de risco e incertezaassumidos
8
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 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 Baião 23
O que queremos?
Sales Marketing Finance Rates/Regulatory
CustomerService
MIS
Product DataCustomer Data
Sales DataMarket Data
G/L DataRevenue DataExternal Data
Informação!
Agilidade
Flexibilidade
Uma única versão da verdade
Mas, de que forma? Com :
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 24
Data Warehouse
“Uma coleção de dados...Orientados ao assuntoIntegradosNão voláteisVariantes no tempo
... Para fornecer suporte ao processo de tomada de decisões na organização” [Inmon, 92]
9
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 25
Ambiente de Data Warehouse
Integrar dados de múltiplas fontes
Facilitar o processo de análise semimpacto para o ambiente de dados operacionais
Obter informação de qualidade
Atender diferentes tipos de usuáriosfinais
Flexibilidade e agilidade paraatender novas análises
BDs Operacionais
DW
AplicaçãoSD
FerramentaOLAP
AplicaçãoDBMKT
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 26
Aplicações OLAP(On-Line Analytical Processing)
ObjetivoApoio à tomada de decisões
Características principaisConsultas de alto custo
Demandam muito tempo de processamentoEnvolvem grande volume de dadosAd-hoc (Gorla, 2003)
Operações de atualização “controladas”Realizadas em períodos pré-definidos
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 27
Questões críticas no ambiente de DW
Envolvimento dos usuáriosAbordagem incremental e iterativaApresentação dos dados
simplicidade, clareza de semântica, níveis distintosde detalhe
Esteja preparado para mudançasDesempenho
OtimizaçãoOtimização de de consultasconsultas OLAP!!!!!!!!!OLAP!!!!!!!!!
10
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 28
Problema
Como obter alto desempenho no processamento de consultas OLAP
de alto custo?
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 29
Desafio
Como obter alto desempenho no processamento de consultas de alto
custo?de maneira pouco dispendiosapouco dispendiosa?de maneira não intrusivanão intrusiva?
mantendo os programas de aplicação e os acessos ao SGBD intactos
não mudando de SGBDnão alterando o esquema lógico do banco de dados
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 30
Processamento ParaleloOpções Arquiteturais
Servidores Paralelos + SGBDs paralelos
Clusters de PCs + SGBDs para clusters
Clusters de Bancos Clusters de Bancos de Dados!de Dados!
11
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 31
Cluster de Bancos de Dados(Relembrando…)
“Cluster de PCs executando, em cada nó,um Sistema Gerenciador de Bancos de Dados padrão.” (Akal, 2002)SGBDs
SeqüenciaisUtilizados como componentes do tipo “caixa-preta”
ParalelismoImplementado através de uma camada intermediária de software (middleware)
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 32
Cluster de Bancos de Dados
CamadaIntermediária
SGBDSGBD
SGBDSGBD
SGBDSGBD
SGBDSGBD
SGBDSGBD
Cluster de PCs
Clientes
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 33
Paralelismo em Bancos de Dados
Características de SBPDistribuição dos Dados
FragmentaçãoReplicação
Processamento e otimização de consultasParalelismo inter-consultasParalelismo intra-consulta
Gerência de TransaçõesBalanceamento de Carga
12
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 34
Distribuição de dados
FragmentaçãoHorizontalVertical
ReplicaçãoTotalParcial
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 35
Fragmentação
Exige novo projeto físico para o banco de dados
Alternativa bastante explorada na literatura
Exige a implementação de middleware com funções
complexas para a execução de consultas
Vários trabalhos apresentam bons resultados
Pode exigir troca de grandes quantidades de dados entre os nós durante o processamento de uma
consulta
DesvantagensVantagens
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 36
Replicação
Middleware pode ser mais simplesTorna simples a migração do banco de dados
Requer técnicas especiais para a manutenção da consistência entre
as réplicas
Elimina a necessidade de um novo projeto físico
Exigência de espaço de armazenamento
DesvantagensVantagens
13
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 37
Distribuição de dados
FragmentaçãoHorizontalVertical
ReplicaçãoTotalParcial
Fragmentação + Replicação!
Fragmentação Virtual
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 38
Fragmentação Virtual
Objetivo: forçar cada SGBD a processar uma mesma consulta sobre subconjuntos distintos de dados através da adição 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 Baião 39
Fragmentação 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 Baião 40
Fragmentação Virtual Adaptativa
OriginalQuery
DBMS
DBMS
DBMS
DBMS
C
DBMSPostgreSQL
DBMSPostgreSQL
DBMSPostgreSQL
DBMSPostgreSQL
Subconsultas
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 41
Processamento e otimização de consultas
Paralelismo inter-consultasExecução concorrente de múltiplas consultas de diversos usuáriosCada consulta é executada seqüencialmenteAumento de vazão
Paralelismo intra-consulta Decomposição de uma única consulta em sub-consultasExecução paralela de múltiplas sub-consultaRedução do tempo de execução da consulta
Paralelismo Inter-C e Intra-C combinados?!
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 42
Balanceamento de cargaUniformizar o esforço de cada nó de processamento
Distribuindo as requisições ao BDDistribuindo os dados
Objetivos Evitar sobrecarga de um nóTirar proveito do multiprocessamento
Restriçõesem que nós estão armazenados os dados acessados pela requisição?
15
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 43
Paralelismo em clusters de BDSoluções existentes
Intra- consulta
Inter- consulta Atualiz. Baixo
custo Disp. Indep.
de SGBD
Licença
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 Baião 44
Pargres
Middleware para clusters de bancos de dados voltado para consultas de alto custo
típicas de aplicações OLAPImplementa Paralelismo Inter & Intra-ConsultaFragmentação Virtual AdaptativaUtiliza o SGBD livre PostgreSQL
Sem adaptações para execução em clusters de Pcshttp://forge.objectweb.org/projects/pargres
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 45
Pargres
PARGRES
PostgreSQLPC-Cluster
Clientes
PostgreSQL
PostgreSQL
PostgreSQL
PostgreSQL
16
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 46
PostgreSQLJDBC driver
PostgreSQLdatabase
ApplicationServer
JVM
Visão Geral solução Pargres
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 47
PostgreSQLJDBC driver
PostgreSQLdatabase
ApplicationServer
JVM
Visão Geral solução Pargres
ParGRESJDBC driver
ParGRESServer
JVM
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 48
Visão Geral solução Pargres
Internet
JDBC
17
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 49
Visão Geral solução Pargres
Internet
JDBC JDBC
Cluster de PCs
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 50
Arquitetura do ParGRES
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 51
Arquitetura do ParGRES
Analisador sintático que faz parser das consultasProvê transparência no paralelismo intra-CGramática SQL-99
Recursos não suportados da linguagem enviados diretamente ao SGBD
CQP
Translator
CQP
18
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 52
Arquitetura do ParGRES
Componente principal da arquiteturaPapel de coordenadorDecisão intra-C x inter-CComposição de resultadosGerência das transações distribuídas
CQP
CQP
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 53
Arquitetura do ParGRES
Gerência de transações Distribuídas
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 Baião 54
Pargres
Alto desempenho em consultas pesadas:escalável, não centralizadadisponibilidadenão necessita modificar a aplicação clienteindependente de fabricante SBGDuso de hardware commodity
Implementa Paralelismo Inter & Intra-ConsultaReplicação Total e Fragmentação Virtual Adaptativa
19
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 55
Pargres
Compatível com SQL-ANSI/99Usa o SGBD livre PostgreSQL versão 8.0.3
Sem adaptações para execução em clusters de PcsDesenvolvido em JavaJDBC versão 3.0 Console texto/web
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 56
Pargres Admin
Submissão de consultas on-line
Adição/remocãode NQPs
Atualização do catálogo
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 57
Comparativo
Intra- consulta
Inter- consulta Atualiz. Baixo
custo Disp. Indep.
de SGBD
Licença
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 Baião 58
Validação ExperimentalBenchmark 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 Baião 59
Validação Experimental
Cluster de 32 nós no INRIACada nó do cluster
Dois processadores 2.2 GHz Opteron, 2 GB RAM, 30 GB HD. Nós interconectados em rede Gigabit EthernetInstância do PostgreSQL 8
Resultados mediram speed-up das consultas variando o número de nós do cluster
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 60
Validação Experimental
21
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 61
Trabalhos relacionados e futuros
Fragmentação física [Furtado e Mattoso - COPPE]Reduzir o problema do espaço em disco
Projeto CG-OLAP [Tanaka, Baiao, Diniz – UNIRIO]Aplicação no domínio de Geo-ProcessamentoNovas técnicas e protocolos de comunicação no clusterNovas técnicas de distribuição dos dados
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 62
Mais Informaçõeshttp://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 DadosSBBD-Demos 2005
http://www.objectweb.org/
Paralelismo em Bancos de Dados Equipe Pargres, Fernanda Baião 63
ConclusãoClusters de SGBDs e Processamento paralelo
Aumento de desempenho de aplicações com acesso intensivo a SGBDsBaixo custo
PargresUma solução leve para alto desempenho de consultas OLAP em clusters de BDPouco intrusivaComponentes já consolidadosCluster de PCs sem uso de hardware específicoDesenvolvimento sobre o PostgreSQL
Padrão SQL-99Software livre
22
Paralelismo emBanco de Dados
Fernanda BaiãoEquipe Pargres
[email protected]://pargres.nacad.ufrj.br
Top Related