Post on 18-Apr-2015
Processamento Distribuído de Consultas
Adriano da Silva CastroMateus de Moura Stock
Tradução das ConsultasTransações do Usuário são convertidas em
instruções de manipulação de dados;Ao usuário, base de dados distribuída é única;Tradução deve ser correta;Plano gerado deve ser ótimo;
O custo total é igual ao custo da transmissão de dados + custo no processamento local;
Minimização do custo;
Processamento de Consultas
Consulta de alto nível
Comandos de manipulação de
dados de baixo nível
Processador de
Consultas
SQL, OQL...
Plano de Execução
OtimizaçãoBusca Exaustiva
Custo;Solução ótima;
HeurísticasSolução boa, mas não é a ótima;Exemplo:
Seleções antes de projeções; Substituir junções por combinações de semi-
junções.
Otimização - GranularidadeNível de detalhamento dos dados dentro do
banco;
Uma consulta de cada vez – não usa resultados intermediários em comum;
Múltiplas consultas de uma vez:Eficiente se existem muitas consultas
similares;Espaço de soluções muito maior.
Otimização - SincronizaçãoEstática
Antes da execução (em tempo de compilação); Propagação de erros e custo acumulado em várias execuções; Dificuldade em fazer estimativas do banco.
Dinâmica Em tempo de execução; Custo repetido para cada execução; Informação exata sobre o tamanho dos resultados
intermediários;
Híbrida Compilação usa algoritmo estático;
Otimização - Estatísticas“Objetos que contêm informações estatísticas sobre a
distribuição de valores em uma ou mais colunas de uma tabela”;
Estimar a cardinalidade, ou número de linhas, no resultado de consulta. Permitem que o otimizador crie um plano de consulta de alta qualidade.
Relações / Fragmentos Cardinalidade Tamanho das tuplas Fração de tuplas que participam de junções
Atributos Cardinalidade do domínio; Número de valores distintos; Informação exata sobre o tamanho dos resultados intermediários;
Premissas comuns Valores distintos de atributos independentes;
Otimização – Sites de DecisãoCentralizada
Simples; Único nó determina a “melhor” estratégia; Necessidade de conhecimento global do BD distribuído;
Distribuída Requer apenas informações locais; Nós cooperam entre si para determinar a estratégia (Custos de cooperação);
Híbrida Estratégia global determinada por um nó único! Cada nó otimiza subconsultas locais;
A maioria dos sistemas usa a abordagem de decisão centralizada
Otimização – Topologia da RedeWAN
Largura de banda e velocidade baixas;Alta sobrecarga do protocolo;Estratégia global minimiza custo de comunicação;Custo de comunicação é dominante!
LANBroadcasting para operações de junção;Custo de comunicação não é tão dominante!
Metodologia
Fase 1 – Decomposição de Consultas
NormalizaçãoTransformação de qualificadores e
quantificadores;Análise
Reconhecer e rejeitar consultas “incorretas”;Simplificação
Eliminar predicados redundantes;Reescrita e Reestruturação
Cálculo Álgebra (árvore de operadores);Regras de transformação (mais de uma tradução
possível);
Fase 2 – Localização de DadosEntrada:
Consulta algébrica das relações distribuídasRelação de fragmentos envolvidosPrograma de Localização
Substituição de cada relação global pelo seu programa de localização Programa em álgebra relacional Operandos são os fragmentos Utilizar regras de reconstrução
Otimização Redução de consultas
Fase 3 – Otimização GlobalEntrada: Consulta de fragmentos
Geração da melhor estratégia global(plano de execução de consultas) Minimização da função de custo Processamento distribuído de junções
Árvores de junção lineares x “Bushy” Que relação (operando) enviar para onde? Envio total x envio sob demanda
Decisão sobre o uso de semijunções Menos comunicação, mais processamento local
Métodos de junção Loops aninhados x junções ordenadas (“merge join” ou
“hash join”)
Processo de Otimização de Consultas
Espaço de BuscaPlanos de execução de consulta
equivalentesFoco é nas árvores de junçãoPara N relações, existem O(N!)
árvores de junção equivalentesComutatividade e associatividade
SELECT ENAME,RESPFROM EMP, ASG, PROJWHERE EMP.ENO=ASG.ENOAND ASG.PNO=PROJ.PNO
Espaço de BuscaRestrição através de heurísticasOperações unárias antes das bináriasRestrição da forma da árvore de junçãoConsidere apenas árvores lineares, ignore as
“bushy”
Fase 4 – Otimização LocalInput: Melhor plano de execução globalSelecionar o melhor caminho de acessoUsar técnicas de otimização centralizadas
ProblemasModelo de Custo
Otimizações de consultas múltiplasHeurísticas para reduzir alternativas
Conjunto maior de consultasNecessidade de tratar consultas mais
complexas (uniões, disjunções, agregações, ordenações)
Avaliação de custo “Otimização” X “Execução”
Intervalo entre a otimização e re-otimização
Principais DesafiosConfiabilidade
Como tornar o sistema tolerante a falhas SGBDs componentes, redes de comunicação
Durabilidade e Atomicidade
Controle de Concorrência Distribuído
Sincronização de acessos concorrentesConsistência X ConcorrênciaProblemas
Gerência de cópias múltiplasFalhas locais em nósFalha nas ligações de comunicaçãoFinalização (commit) distribuídaBloqueio perpétuo (deadlock) distribuído
Alternativas de ImplementaçãoTempos separados para leitura e modificaçãoDuas cópias da base da dados distribuída
Uma para consultas Uma para atualizações Atualizações periódicas na base de consultas
Aspectos ImportantesSuporte do Sistema Operacional
SGBDs – Aplicação muito diferente das convencionais
Suporte apropriado a operações de bancos de dados Situação ainda mais crítica no caso dos SBDDs Ex: Suporte a transações distribuídas com controle
de concorrência e reconstrução
Aspectos ImportantesProcessamento de Transações Distribuído
Manter um estado consistente da base de dados com replicação
Protocolos sofisticados de controle de réplicas. O método mais imediato é o ROWA (read one write
many) Muito caro.
Avaliar três tipos de replicaçãoDadosProcessamentoComunicação
BibliografiaÖzsu, M.T. Valduriez, P. "Principles of
Distributed Database Systems", Prentice Hall, 1999, 2ª edição
Mattoso, M.L.Q. " Introdução a Banco de Dados Distribuídos", 2003
www.wikipedia.org/wiki/Banco_de_dados_distribuídos
www.inf.ufsc.br/~frank/BDD/www.uniriotec.br/~fernanda.baiao/BDDDW/