Processamento Distribuído de Consultas

Download Report

Transcript Processamento Distribuído de Consultas

Adriano da Silva Castro Mateus de Moura Stock

Tradução das Consultas

 Transaçõ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

SQL, OQL...

Processador de Consultas Comandos de manipulação de dados de baixo nível

Plano de Execução

Otimização

 Busca Exaustiva  Custo;  Solução ótima;  Heurísticas  Soluçã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 - Granularidade

 Ní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ção

Está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ão

Centralizada

  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 Rede

WAN

    Largura de banda e velocidade baixas; Alta sobrecarga do protocolo; Estratégia global minimiza custo de comunicação;

Custo de comunicação é dominante!

LAN

  Broadcasting para operações de junção;

Custo de comunicação não é tão dominante!

Metodologia

Fase 1 – Decomposição de Consultas

Normalização

 Transformaçã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 Dados

 Entrada:  Consulta algébrica das relações distribuídas  Relação de fragmentos envolvidos  Programa 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 Global

 Entrada: 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 Busca

 Planos de execução de consulta equivalentes  Foco é nas árvores de junção  Para N relações, existem O(N!) árvores de junção equivalentes  Comutatividade e associatividade SELECT ENAME,RESP FROM EMP, ASG, PROJ WHERE EMP.ENO=ASG.ENO

AND ASG.PNO=PROJ.PNO

Espaço de Busca

 Restrição através de heurísticas  Operações unárias antes das binárias  Restrição da forma da árvore de junção  Considere apenas árvores lineares, ignore as “bushy”

Fase 4 – Otimização Local

 Input: Melhor plano de execução global  Selecionar o melhor caminho de acesso  Usar técnicas de otimização centralizadas

Problemas

 Modelo de Custo  Otimizações de consultas múltiplas  Heurísticas para reduzir alternativas  Conjunto maior de consultas  Necessidade 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 Desafios

 Confiabilidade  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 concorrentes Consistência X Concorrência Problemas      Gerência de cópias múltiplas Falhas locais em nós Falha nas ligações de comunicação Finalização (commit) distribuída Bloqueio perpétuo (deadlock) distribuído Alternativas de Implementação   Tempos separados para leitura e modificação Duas cópias da base da dados distribuída  Uma para consultas   Uma para atualizações Atualizações periódicas na base de consultas

Aspectos Importantes

 Suporte 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 Importantes

 Processamento 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ção  Dados  Processamento  Comunicaçã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/