240 likes | 341 Views
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;
E N D
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 Processador de Consultas Consulta de alto nível Comandos de manipulação de dados de baixo nível SQL, OQL...
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!
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 “hashjoin”)
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 • Necessidadede 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 (readonewritemany) • Muito caro. • Avaliar três tipos de replicação • Dados • Processamento • Comunicação
Bibliografia • Özsu, M.T.Valduriez, P. "PrinciplesofDistributed 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/