adriano da silva castro mateus de moura stock. tradução das consultas transações do usuário...

24
Processamento Distribuído de Consultas Adriano da Silva Castro Mateus de Moura Stock

Upload: internet

Post on 18-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Processamento Distribuído de Consultas

Adriano da Silva CastroMateus de Moura Stock

Page 2: 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

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;

Page 3: 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

Processamento de Consultas

Consulta de alto nível

Comandos de manipulação de

dados de baixo nível

Processador de

Consultas

SQL, OQL...

Page 4: 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

Plano de Execução

Page 5: 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

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.

Page 6: 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

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.

Page 7: 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

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;

Page 8: 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

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;

Page 9: 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

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

Page 10: 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

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!

Page 11: 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

Metodologia

Page 12: 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

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);

Page 13: 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

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

Page 14: 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

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”)

Page 15: 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

Processo de Otimização de Consultas

Page 16: 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

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

Page 17: 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

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”

Page 18: 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

Fase 4 – Otimização LocalInput: Melhor plano de execução globalSelecionar o melhor caminho de acessoUsar técnicas de otimização centralizadas

Page 19: 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

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

Page 20: 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

Principais DesafiosConfiabilidade

Como tornar o sistema tolerante a falhas SGBDs componentes, redes de comunicação

Durabilidade e Atomicidade

Page 21: 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

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

Page 22: 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

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

Page 23: 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

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

Page 24: 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

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/