Processamento Distribuído de Consultas

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

Otimização de Consultas em SQL Estimativas de Custos
Álgebra Relacional Marcelo Mendes Manaus
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
Evolução dos SGBD’s (2ª Parte).
Resumo 1.1) Introdução 1.2) Abordagem Convencional de Arquivos
Data Warehouse Tuning O que é um Data Warehouse? Índices Bitmap
Manipulação algébrica
Sistema Gerenciador de Banco de Dados SGBD
Otimização de Consultas em SQL Parte II - Planos Alternativos -  Estimativa de Custos dos Planos de Execução AULA 19 Profa. Sandra de Amo Programa de.
Otimização de Consultas em SQL Parte I - Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 19 Profa. Sandra de Amo Programa.
Gerenciamento de Banco de Dados
Otimização de Consultas em SQL Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 24 Profa. Sandra de Amo GBC053 – BCC
Sumário 1 SQL Embutida 2 Processamento de Consultas
Professora: Aline Vasconcelos
Avaliação de Desempenho Planejamento de Experimentos 2 Aula 2 Marcos José Santana Regina Helena Carlucci Santana Universidade de São Paulo Instituto de.
Fundamentals of Database Processing
Prof. Alexander Roberto Valdameri
Prof. Alexander Roberto Valdameri
SISTEMAS DISTRIBUÍDOS Princípios e Paradigmas 2ª Edição ANDREW S
Banco de dados distribuídos
Sistemas Distribuídos
Controle de parâmetros em algoritmos evolucionários
Um Esquema de Replicação para Suportar Conectividade Fraca em Sistemas de Informação Móveis * Gustavo Fortes Tondello PPGCC – UFSC – 2005 * Original: A.
Adriano da Silva Castro
Geração de Planos de Execução Planos para Consultas Aninhadas
Banco de Dados II Prof. Antônio Cordeiro.
Tópicos em redes e sistemas distribuídos
Sistemas Distribuídos
Otimizador de consultas
Tuning Lílian Simão Oliveira.
Otimização de Consultas em SQL Planos de Execução
sintonia de banco de dados
Carolina Gelenske Carlos Eduardo Laís Xavier
Algoritmos de Processamento e Otimização de Consultas
Sistemas Distribuídos
Sistemas de Informação Prof. Carlos Alberto Seixas Banco de Dados II /01 UNIESP
Exercícios SGBD - CESPE
Controle de concorrência
BD Distribuído Conceitos Iniciais.
A abordagem de banco de dados para gerenciamento de dados
Sistemas NoSQL - Chave-Valor
SGBD Distribuído Lílian Simão Oliveira.
PROGRAMAÇÃO DISTRIBUÍDA Aula 01 Prof. Henrique Mongelli
Tradutor Oracle SQL Server Núcleo comum Lookup Middleware consultas esquema de mediação Base de dados das fontes locais Ambiente de geração das consultas.
Sistemas Tolerantes a Falhas: Conceitos e Técnicas
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
SISTEMAS DISTRIBUÍDOS Transações Atômicas
Query processing in main memory Vitor Silva. Bibliografia “Query Processing in Main Memory Database Management Systems” - Tobin J. Lehman & Michael J.
Back-End Compilação aula-11-back-end.pdf.
Definição um sistema de BD distribuído consistem em uma rede de várias ocorrências de bases de dados interligadas. característica principal para o usuário,
BD I / Processamento de Consultas Prof. Altigran Soares da Silva IComp/UFAM.
Integração de Ferramentas CASE
1 24/4/ :29 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
1 PicoDBMS: Scaling down Database Techniques for the Smartcard Christophe Bobineau, Luc Bouganin, Philippe Pucheral, Pratick Valduriez Ana Karina de Oliveira.
Arquitetura P2P (Integração de Dados) Luciana Pereira Oliveira Professora: Valéria Times Professora: Valéria Times.
AOBD 07/08 Mini-Projecto 2 Soluções. 1) Considere que existem três relações R1=(A,B,C), R2=(C,D) e R3=(D,E) com chaves primárias A, C e D, respectivamente.
Sumário 1 SQL Embutida 2 Processamento de Consultas
Capítulo 9: SAD orientado a Modelo
Banco de Dados I Unidade 6 Processamento de Consultas Otimização Lógica.
Bancos de Dados Distribuídos
PostgreSQL Índices Nuno Campos N.º Nuno Campos - N.º Índice Introdução Tipos de Índices – B-Tree – R-Tree – Hash – GiST Classes de Operadores.
INE 5336 Banco de Dados II Ronaldo S. Mello 2007/2 Horário Atendimento: Quintas-feiras, das 17h30 às 19h UFSC-CTC-INE.
Objetos em Bancos de Dados Relacionais Alcides Calsavara.
Capítulo 1 Sistemas de Banco de Dados
Implementação Distribuída Escalonamento de Tempo-Real Prof. Dr. Norian Marranghello Grupo 8 Daniela Gonçalves Strozi – Sayuri Watanabe
UCSal – Bacharelado em Informática
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Modelagem de Dados Aula 3.
Transcrição da apresentação:

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...

Plano de Execução

Otimização Busca Exaustiva Heurísticas Custo; Solução ótima; 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 Conjunto maior de consultas 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 Durabilidade e Atomicidade 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/