rumo a processamento de consultas em ambientes altamente distribuídos

69
Rumo a Rumo a Processamento de Processamento de Consultas em Consultas em Ambientes Ambientes Altamente Altamente Distribuídos Distribuídos Disciplina: Banco de Dados Disciplina: Banco de Dados Pós-Graduação em Pós-Graduação em Informática (UFCG) Informática (UFCG)

Upload: malik-harper

Post on 01-Jan-2016

21 views

Category:

Documents


2 download

DESCRIPTION

Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos. Disciplina: Banco de Dados Pós-Graduação em Informática (UFCG). Índice. I- Objetivos da Apresentação II- Por que Ambientes Altamente Distribuídos? III- Processamento de Consultas Distribuídas - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

Rumo a Rumo a Processamento Processamento de Consultas em de Consultas em

Ambientes Ambientes Altamente Altamente

DistribuídosDistribuídosDisciplina: Banco de DadosDisciplina: Banco de Dados

Pós-Graduação em Pós-Graduação em Informática (UFCG)Informática (UFCG)

Page 2: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

ÍndiceÍndiceI- Objetivos da ApresentaçãoII- Por que Ambientes Altamente

Distribuídos?III- Processamento de Consultas DistribuídasIV- Processamento de Consultas com

Sistemas de Banco de Dados Cliente-Servidor

V- Sistemas de Bancos de Dados Heterogêneos

VI- Agenda de Pesquisa

Page 3: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

I- ObjetivosI- Objetivos• Entender por que os otimizadores

clássicos de consultas distribuídas não estão preparados para operar em ambientes altamente distribuídos

• Agenda de pesquisa em otimizadores de consultas para ambientes altamente distribuídos

Page 4: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

II- Por que Ambientes II- Por que Ambientes Altamente Distribuídos?Altamente Distribuídos?• Sistemas distribuídos podem

envolver milhares de nós heterogêneos (“sites”)– PCs– “Mainframes”

• Sistemas distribuídos são extremamente dinâmicos– Mudanças de estado dos nós– Acréscimo de novos nós

Page 5: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

II- Por que Ambientes II- Por que Ambientes Altamente Distribuídos?(2)Altamente Distribuídos?(2)• Sistemas legados devem sobreviver

– Convivência com outros (modernos) sistemas em um ambiente altamente distribuído

Page 6: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

II- Por que Ambientes II- Por que Ambientes Altamente Distribuídos?(3)Altamente Distribuídos?(3)• Necessidade de ambientes altamente

distribuídos– Custo e Escala

• Mil PCs custam mais barato e são significativamente mais poderosos do que um “big mainframe”

• Fazer um “upgrade” de um “mainframe” é complicado

• Acrescentar um novo PC à rede é muito simples• Alta disponibilidade pode ser alcançada via

espelhamento (replicação) de dados

Page 7: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

II- Por que Ambientes II- Por que Ambientes Altamente Distribuídos?(4)Altamente Distribuídos?(4)• Necessidade de ambientes

altamente distribuídos– Integração de diferentes pacotes de

software• Nenhum pacote individualmente pode

contemplar todos os requisitos de uma empresa

– Um “bag” de pacotes (isto é, pacotes diferentes e/ou cópias), com potencialmente seu próprio BD, constitui um sistema de banco de dados distribuído (BDD)

Page 8: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

II- Por que Ambientes II- Por que Ambientes Altamente Distribuídos?(5)Altamente Distribuídos?(5)• Necessidade de ambientes altamente

distribuídos– Integração de sistemas legados

• Os velhos pacotes devem co-existir com os novos (modernos) pacotes

– Novas aplicações• Muitas aplicações (emergentes) estão se tornando

imperativas, e são pesadamente dependentes de tecnologias de BDD

– “E-commerce”– Gerência de “workflow”– “Computer supported collaborative work”

(“Groupware”)– Teleconferência

Page 9: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

II- Por que Ambientes II- Por que Ambientes Altamente Distribuídos?(6)Altamente Distribuídos?(6)• Necessidade de ambientes

altamente distribuídos– Imposição do Mercado

• Empresas estão sendo forçadas a reorganizar seus negócios para se manter competitivas

– Serviços “on-line”

Page 10: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ‘Clássico’ de III- Processamento ‘Clássico’ de Consultas Distribuídas: Hipóteses Consultas Distribuídas: Hipóteses Assumidas Assumidas

• Usuários e programadores de aplicação submetem suas consultas usando uma linguagem declarativa como SQL ou OQL (“Object Query Language”) OK!– A meta é processar tais consultas tão

eficientemente quanto possível• Minimizar tempos de resposta / “query throughput”

• Usuários não sabem onde e como os dados estão armazenados OK!– Visão centralizada do BDD

Page 11: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (2): III- Processamento ... (2): Hipóteses Assumidas (2) Hipóteses Assumidas (2) • Os dados são estruturados Restrição

– BDs relacionais ou OO• O hardware dos nós do BDD é mono-

processador Restrição– Outra maneira de dizer é que sistemas

de banco de dados paralelo (“parallel database systems”) são ignorados

• O número de BDs é pequeno Restrição

Page 12: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento de Consultas III- Processamento de Consultas Distribuídas (3) Distribuídas (3)

• Arquitetura de um Processador de Consultas

• Otimizador de Consultas– Enumeração de Planos– Modelo Clássico de Custo para Planos

Page 13: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento de Consultas Distribuídas III- Processamento de Consultas Distribuídas (4): Arquitetura de um Processador de (4): Arquitetura de um Processador de Consultas Consultas

Parser

QueryRewrite

QueryOptimizer

CodeGeneration

QueryExecution

Engine

Query

Catalog(Meta Data)

Base Data

Internalrepr.

Internalrepr.

Plan

Executionplan

Result

Page 14: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento de Consultas Distribuídas III- Processamento de Consultas Distribuídas (5): Arquitetura de um Processador de (5): Arquitetura de um Processador de Consultas (2)Consultas (2)

• Query Rewrite– Transforma logicamente uma consulta

• Eliminação de predicados redundantes• Simplificação de expressões• Transformação de consultas com sub-

consultas em consultas ‘planas’• BDD: seleciona os fragmentos (“partitions”)

de uma tabela que devem ser considerados para responder à consulta

Page 15: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento de Consultas Distribuídas III- Processamento de Consultas Distribuídas (6): Arquitetura de um Processador de (6): Arquitetura de um Processador de Consultas (3)Consultas (3)

• Query Optimizer– Promove otimizações que dependem do estado

físico do sistema• “Access Paths”

– Que índices usar– Que métodos (por exemplo, “hashing” ou “sorting”)

usar para as operações “joins”, “group-bys” e “order by”

– Em que ordem as operações devem ser executadas– Quanta memória alocar para cada operação– BDD: em que nó cada operação deve ser executada

– Enumeração de planos alternativos– Escolha do melhor plano usando um modelo de

estimativa de custos

Page 16: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (7) III- Processamento ... (7) Arquitetura ... (4): Planos Arquitetura ... (4): Planos Site 0

Site 1 Site 2

NLJ

scan

temp

receivereceive

sendsend

idxscan(A) scan(B)

Page 17: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (8) Arquitetura ... III- Processamento ... (8) Arquitetura ... (5): “Query (5): “Query ExecutionExecution Engine” Engine”

• Implementações genéricas para cada operador (por exemplo, “send”, “scan”, NLJ)

• “Pipelining” de resultados de um operador para outro– Desempenho

Page 18: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (9) III- Processamento ... (9) Arquitetura ... (6): CatálogoArquitetura ... (6): Catálogo

• Mantém:– O esquema do BD– BDD: o esquema de fragmentação– Informações físicas

• Locação de cópias de fragmentos de tabela• Índices• Estatísticas para estimar o custo de um

plano

– BDD: onde armazenar o catálogo?

Page 19: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (10) III- Processamento ... (10) Arquitetura ... (7): Catálogo (2)Arquitetura ... (7): Catálogo (2)

• Armazenamento do catálogo– Em um nó central– Em WANs

• Replicação do catálogo em diversos nós– Redução dos custos de comunicação

• “Caches” de informações do catálogo em nós da rede

Page 20: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (11) III- Processamento ... (11) Arquitetura ... (8): Catálogo (3)Arquitetura ... (8): Catálogo (3)

• Sobre o tamanho e a dinamicidade de um catálogo– Catálogos de BDD podem tornar-se

muito grandes e ser frequentemente atualizados• Catálogos hierarquizados• Fragmentos de catálogo• Replicação de (fragmentos de) catálogo

Page 21: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento de Consultas III- Processamento de Consultas Distribuídas (12): ‘Otimizador’ de Distribuídas (12): ‘Otimizador’ de Consultas Consultas

Input: SPJ query q on relations R1, ...,Rn

Output: A query plan for q1: for i = 1 to n do {2: optPlan({Ri}) = accessPlans(Ri)3: prunePlans(optPlan({Ri})4: }5: for i = 2 to n do {6: for all S {R1, ...,Rn} such that S = i do {7: optPlan(S) = 8: for all O S do {9: optPlan(S) = optPlan(S) joinPlans(optPlan(O),10: optPlan(S-O))11: prunePlans(optPlan(S))12: }13: }14:}15: return optPlan({R1, ...,Rn})

Algoritmo Dynamic Programming

Page 22: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (13) III- Processamento ... (13) ‘Otimizador’ de Consultas (2)‘Otimizador’ de Consultas (2)• A lógica do algoritmo

– Construir (sub-)planos mais complexos de (sub-)planos mais simples

• Primeiro passo– Planos de acesso para toda tabela envolvida na

consulta: linhas 1 a 4– Exemplo: tabela A replicada nos nós S1 e S2

• Planos de acesso alternativos– scan(A, S1) e scan(A,S2)

• Um dos dois planos é descartado, em princípio (modelo de custos)

Page 23: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (14) III- Processamento ... (14) ‘Otimizador’ de Consultas (3)‘Otimizador’ de Consultas (3)

• Sobre o descarte de planos (“prunePlans”)– BDD: nem scan(A, S1) e nem scan(A,

S2) podem ser imediatamente descartados• Mesmo se scan(A, S1) for mais barato que

scan(A, S2), scan(A, S2) ainda poderia ser escolhido se os resultados da consulta devessem ser apresentados em S2 (ou o que importa é o custo global da consulta)

Page 24: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (15) III- Processamento ... (15) ‘Otimizador’ de Consultas (4)‘Otimizador’ de Consultas (4)• Segundo passo

– Enumeração de “n-way join plans” (linhas 5 a 14)

– Para entender o passo• Tabelas A (optPlan(A)) e B (optPlan(B))• Junção de A e B

i = 2For all S {A, B}, such that S = 2

For all O S -- {A} e {B} optPlan({A, B}) = joinPlans(optPlan(A), optPlan(B))

optPlan({A, B}) = joinPlans(optPlan(B), optPlan(A))

• O melhor de “joinPlans” é escolhido

Page 25: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (16) III- Processamento ... (16) ‘Otimizador’ de Consultas (5)‘Otimizador’ de Consultas (5)• Avaliação do algoritmo

– Vantagens• Produz os melhores planos possíveis se o

modelo de custo for suficientemente exato

– Desvantagens• Não tem escala: complexidade exponencial• BDD: proibitivo para muitas consultas

– Uma extensão do algoritmo Dynamic Programming para BDD é tema de uma das aulas

Page 26: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (17) ‘Otimizador’ III- Processamento ... (17) ‘Otimizador’ de Consultas (6): O Modelo Clássico de de Consultas (6): O Modelo Clássico de CustosCustos

• Composição do custo de um operador– CPU– Disco

• “Seek”• “Latency”• “Transfer”

– BDD: custos de comunicação• Custos por byte transferido• Custos de CPU: “to pack and unpack messages”• O custo pode ser pesado a fim de modelar o impacto de

máquinas lentas e rápidas, e de “links” de comunicação– É mais caro transmitir dados de Passau (Alemanha) para

Washington (EUA) do que de Passau para Munich (Alemanha)

Page 27: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (18) ‘Otimizador’ III- Processamento ... (18) ‘Otimizador’ de Consultas (7): O Modelo Clássico de de Consultas (7): O Modelo Clássico de Custos (2)Custos (2)

• Critérios de avaliação de custos– “Minimum Resource Consumption”

• Otimiza o “ overall throughput” do sistema

– “Minimum Response Time”• O “throughput” pode baixar, mas as

consultas processadas têm tempos de resposta otimizados

Page 28: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (19) ‘Otimizador’ de Consultas III- Processamento ... (19) ‘Otimizador’ de Consultas (8): O Modelo Clássico de Custos (3) (8): O Modelo Clássico de Custos (3)

Site 0

Site 0

Site 1 Site 2

joinjoin

join

CA B Djoinjoin

join

receivereceive

sendsend

A B C DMinimum Resource Consumption

Minimum Response Time

Page 29: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (20) ‘Otimizador’ III- Processamento ... (20) ‘Otimizador’ de Consultas (9): O Modelo Clássico de de Consultas (9): O Modelo Clássico de Custos (4)Custos (4)

• Avaliação do Modelo de Custos– Somente funciona bem se poucos

operadores rodam em paralelo

Page 30: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (21) ‘Otimizador’ III- Processamento ... (21) ‘Otimizador’ de Consultas (10): Técnicas de Junção de Consultas (10): Técnicas de Junção e Transferênciae Transferência

• Transferência• Junção

Page 31: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (22) ‘Otimizador’ III- Processamento ... (22) ‘Otimizador’ de Consultas (13): Transferênciade Consultas (13): Transferência

• “Row Blocking”• “Optimization of Multicasts”

– Redes organizadas em um modo hierárquico• Exemplo: se quero mandar dados de

Washington para Munich e para Dresden então

– Washington Munich– Munich Dresden

Page 32: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (23) ‘Otimizador’ III- Processamento ... (23) ‘Otimizador’ de Consultas (14): Métodos de Junçãode Consultas (14): Métodos de Junção

• “Multithread Query Execution”

receivereceivereceive

union

sendsendsend

Scan(A1) Scan(A2) Scan(A3)

Site 0

Site 1 Site 2 Site 3

Page 33: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (24) ‘Otimizador’ III- Processamento ... (24) ‘Otimizador’ de Consultas (15): Métodos de Junção de Consultas (15): Métodos de Junção (2)(2)

• “Join with Horizontally Partitioned Data”– A = A1 A2

– A B = (A1 A2) B = (A1 B) (A2 B)

• “Semijoins”– A (nó 1) e B (nó 2), com transferência de

A para B– A B = A (B (A)), (“semijoin”)

Page 34: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

III- Processamento ... (25) ‘Otimizador’ III- Processamento ... (25) ‘Otimizador’ de Consultas (16): Outros Métodos de de Consultas (16): Outros Métodos de Junção (3)Junção (3)

• “Double-Pipelined Hash Joins”• “Pointer-Based Joins and Distributed

Object Assembly”• “Top N and Bottom N Queries”

Page 35: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de IV- Sistemas de Banco de Dados Cliente-ServidorDados Cliente-Servidor• Arquiteturas

– “Peer-to-Peer”• Todo nó pode atuar como um servidor ou como

cliente

– Cliente-Servidor Stricto Sensu• Cada nó tem um papel fixo

– Servidor (“data source”)– Cliente (“query source”)

– “Middleware” ou Multi-camadas• Nós organizados de modo hierárquico

– Cada nó de uma camada intermediária exerce ao mesmo tempo os papéis de servidor e cliente

Page 36: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de IV- Sistemas de Banco de Dados Cliente-Servidor (2)Dados Cliente-Servidor (2)• A Lógica das Arquiteturas Cliente-Servidor

– Os BDs são persistentemente armazenados em máquinas servidoras, enquanto as consultas aos BDs são iniciadas em máquinas clientes

• Perguntas– Onde processar uma consulta? No cliente? No servidor?– Política de “caching” na máquina cliente?– Como escolher os servidores se uma mesma cópia

encontra-se replicada em vários servidores?– Como escolher os servidores (locais) e as ordens das

operações se os dados estão distribuídos em vários servidores?

Page 37: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de IV- Sistemas de Banco de Dados Cliente-Servidor (3)Dados Cliente-Servidor (3)

• “Query Shipping”– Usado nos SGBDs relacionais comerciais

client

server

query

result

A Bscan scan

join

Page 38: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de Dados IV- Sistemas de Banco de Dados Cliente-Servidor (4): “Query Shipping” Cliente-Servidor (4): “Query Shipping” (2)(2)

• Sistemas Multi-camadas– Um servidor intermediário realiza a

junção de tabelas armazenadas em diferentes servidores

– “Gateways” entre os servidores de modo que a junção pode ser realizada em um dos servidores

– As junções podem também ser distribuídas entre vários servidores

Page 39: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de Dados IV- Sistemas de Banco de Dados Cliente-Servidor (5): “Data Shipping”Cliente-Servidor (5): “Data Shipping”

• O Contrário de “Query Shipping”– Usado em SGBDs OO

client

server

A B

scan scan

join

A B

“cache”

Page 40: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de Dados IV- Sistemas de Banco de Dados Cliente-Servidor (6): “Data Shipping” Cliente-Servidor (6): “Data Shipping” (2)(2)

• Política de “Caching”– Páginas de tabelas e índices– Granulosidade

• Páginas – Blocos de tuplas de 4K ou 8K

Page 41: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de Dados IV- Sistemas de Banco de Dados Cliente-Servidor (7): “Hybrid Shipping” Cliente-Servidor (7): “Hybrid Shipping”

• Flexibilidade de processar operadores de consulta tanto em máquinas servidoras quanto máquinas clientes

• “Caching” de dados por clientes• Usado em produtos como o SGBDOR

UniSQL

Page 42: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de Dados IV- Sistemas de Banco de Dados Cliente-Servidor (8): “Hybrid Shipping” Cliente-Servidor (8): “Hybrid Shipping” (2)(2)

client

server

A B

scan

scan

join

A

Page 43: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de Dados IV- Sistemas de Banco de Dados Cliente-Servidor (9): DiscussãoCliente-Servidor (9): Discussão

• Uma obviedade– “Query shipping” é recomendável se as

máquinas servidoras são poderosas e as máquinas clientes são um tanto lentas

• “Query shipping” e escala– Se houver muitos clientes

simultaneamente, as máquinas servidoras passam a ser eventuais gargalos

Page 44: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de Dados IV- Sistemas de Banco de Dados Cliente-Servidor (10): Discussão (2)Cliente-Servidor (10): Discussão (2)

• “Data shipping” e escala: em princípio, um casamento perfeito. Mas– Pode ser a causa de gargalos de comunicação

• Má política de “caching”: grande quantidade de dados não filtrados enviados aos clientes

• “Hybrid shipping”: em muitas situações, podem exibir melhor desempenho que “data” e “query shipping”. Mas– O processo de otimização das consultas é

significativamente mais complexo

Page 45: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de Dados IV- Sistemas de Banco de Dados Cliente-Servidor (11): Discussão (3)Cliente-Servidor (11): Discussão (3)

• Duas heurísticas (frutos da experiência)– Se a rede for rápida e se dados estiverem

“cached” nos discos do cliente, pode ser melhor ler os mesmos dos discos do servidor

– Se a rede for rápida e se os dados estiverem “cached” na memória do cliente, pode ser melhor transferir resultados parciais da consulta para o servidor, e completar a consulta no servidor

• Conclusão: o conhecimento adquirido não poupa o ‘otimizador’ de consultas de ser um software extremamente complexo

Page 46: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de Dados IV- Sistemas de Banco de Dados Cliente-Servidor (12): ‘Otimizadores’ Cliente-Servidor (12): ‘Otimizadores’ de Consultade Consulta• Seleção de nó Data

ShippingQuery

ShippingHybrid

Shipping

display client client client

update client server client or server

binary operations

consumer (i.e., client)

producer of left or right

input

consumer or producer of left or right

input

unary operations

consumer (i.e., client)

producer consumer or producer

scan client server client or server

Page 47: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de Dados IV- Sistemas de Banco de Dados Cliente-Servidor (13) ‘Otimizadores’ de Cliente-Servidor (13) ‘Otimizadores’ de Consulta (2): Seleção (2)Consulta (2): Seleção (2)• Operadores binários: “join”, ...• Operadores unários: “sort”, “group-by”, ...• “Client”: nó onde a consulta é lançada• “Consumer”: o mesmo servidor que processa

(consome) a saída do operador• “Producer”: o mesmo servidor que processa (produz) a

entrada do operador• “Server (Scan)”: um servidor que armazena uma cópia

dos dados a serem varridos• “Server (Update)”: todos os servidores que

armazenam cópias dos dados• Todas as ‘anotações de nós’ são lógicas

Page 48: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de Dados Cliente-IV- Sistemas de Banco de Dados Cliente-Servidor (14) ‘Otimizadores’ de Consulta (3): Servidor (14) ‘Otimizadores’ de Consulta (3): Otimização em Dois PassosOtimização em Dois Passos

• Passo 1– Em tempo de compilação, gerar um

plano que especifica a ordem das junções, e os caminhos de acesso

• Passo 2– Antes que uma consulta seja executada,

selecionar os nós para determinar onde os operadores serão processados

Page 49: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de Dados Cliente-IV- Sistemas de Banco de Dados Cliente-Servidor (15) ‘Otimizadores’ de Consulta (4): Servidor (15) ‘Otimizadores’ de Consulta (4): Otimização em Dois Passos (2)Otimização em Dois Passos (2)

• Exemplo– Tabelas A e D em um servidor– Tabelas B e C em um outro servidor

Primeiro passo:display

joinjoin

join

A B C D

Page 50: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de Dados Cliente-IV- Sistemas de Banco de Dados Cliente-Servidor (16) ‘Otimizadores’ de Consulta (5): Servidor (16) ‘Otimizadores’ de Consulta (5): Otimização em Dois Passos (3)Otimização em Dois Passos (3)

Segundo passo:

display

joinjoin

join

A B C D

Movimento de dados

Page 51: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

IV- Sistemas de Banco de Dados Cliente-IV- Sistemas de Banco de Dados Cliente-Servidor (17) ‘Otimizadores’ de Consulta (6): Servidor (17) ‘Otimizadores’ de Consulta (6): Otimização em Dois Passos (4)Otimização em Dois Passos (4)

O plano gerado pelo segundo passo não leva em conta os custos de comunicação

Um possível plano ótimo:

display

joinjoin

join

A BCD

Page 52: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de V- Sistemas de Bancos de Dados HeterogêneosDados Heterogêneos• Sinônimos

– BDs federados– Sistema multi-banco de dados (“multidatabase

systems”)• Objetivos

– Facilitar o desenvolvimento de aplicações tendo acesso a diferentes bancos de dados componentes

• BDs de imagens• BDs relacionais• BDs objeto-relacionais• BDs orientados a objeto• BDs com interface Web (“WWW databases”)

Page 53: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de V- Sistemas de Bancos de Dados Heterogêneos (2)Dados Heterogêneos (2)• Desafios

– Encontrar planos de consulta ‘ótimos’ que explorem as capacidades específicas de cada BD componente

• Heterogeneidade estrutural

– Resolver o problema da heterogeneidade semântica

• Em um BD, a moeda é Euro• Em outro BD, a moeda é a Libra

– Cada BD componente tem uma interface específica (API), e pode não ter sido projetado para operar com outros BDs componentes

Page 54: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de V- Sistemas de Bancos de Dados Heterogêneos (3)Dados Heterogêneos (3)

• Uma Arquitetura

ClientClient

Mediator Catalog

Wrapper Wrapper

DatabaseDatabaseDatabase

Page 55: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de Dados V- Sistemas de Bancos de Dados Heterogêneos (4): Arquitetura (2)Heterogêneos (4): Arquitetura (2)• “Mediator”

– Comporta-se como um processador de consultas comum• “parser’• “rewrite”• “query optimization”• Processa algumas das operações da consulta

– Mantém um catálogo• “Global schema”• “External schemata” dos BDs componentes• Estatísticas para a otimização das consultas

– Projetado para ser independente de qualquer BD componente ─ genérico

• Não conhece as APIs específicas• Nada sabe sobre as capacidades locais de otimização de consultas

– Conclusão: um software complexo, com muitas das capacidades de um verdadeiro SGBD

Page 56: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de Dados V- Sistemas de Bancos de Dados Heterogêneos (5): Arquitetura (3)Heterogêneos (5): Arquitetura (3)• “Wrapper” (“Adaptor”)

– Solução para o requisito da independência do “mediator” em relação aos BDs componentes

– Associado, em princípio, com cada BD componente, escondendo-o (“encapsulating it”) do “mediator”

• “Wrapper” de um “WWW database” (por exemplo, amazon.com)

– Recebe do BD páginas html (por exemplo, lista de livros)

– Filtra informação útil (autor, título, preço, etc.) e a formata

– “Row blocking” e “caching” para desempenho e otimização

– Somente alguns tipos de consulta, pré-definidos

Page 57: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de Dados V- Sistemas de Bancos de Dados Heterogêneos (6): Arquitetura (4)Heterogêneos (6): Arquitetura (4)

• “Wrapper” (“Adaptor”)– Pode estar associado com vários BDs

componentes– Um software que pode ser muito

complexo– Felizmente: um “wrapper” pode

funcionar bem para muitos BDs componentes similares, ou com pequenas modificações

Page 58: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de Dados V- Sistemas de Bancos de Dados Heterogêneos (7): Arquitetura (5)Heterogêneos (7): Arquitetura (5)

• Extensibilidade da Arquitetura– “Wrappers” e BDs componentes podem ser

“upgraded”, ou novos “wrappers” / BDs componentes podem ser integrados, tudo isso sem mudar o “mediator” e os “wrappers” existentes

• Flexibilidade da Arquitetura– “Wrappers” e “mediator” podem ser instalados

em qualquer máquina do sistema– “Mediator” pode ser distribuído

• Instâncias cooperativas instaladas em diferentes máquinas

Page 59: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de Dados V- Sistemas de Bancos de Dados Heterogêneos (8): ‘Otimizador’ de Heterogêneos (8): ‘Otimizador’ de ConsultasConsultas

• Deve ser genérico, e capaz de ‘entender’ as capacidades dos BDs componentes

• Descreveremos o enfoque “planning functions”– Lembre-se: o “mediator” não conhece as APIs

(interfaces estilo SQL) dos BDs componentes!– Disponibilizadas pelos “wrappers”– Chamadas pelas funções “accessPlan” e “joinPlan” do

‘otimizador’ de consultas do “mediator”• Construção de subplanos (“wrapper plans”)

• O ‘otimizador’ segue o paradigma “dynamic programming”– Implementado no sistema Garlic, da IBM

Page 60: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de Dados V- Sistemas de Bancos de Dados Heterogêneos (9): ‘Otimizador’ de Heterogêneos (9): ‘Otimizador’ de Consultas (2)Consultas (2)

Mediator

Wrapper

ComponentDB

planningfunction(s) wrapper

plan

subconjuntoresposta

(p.e., “rowBlocking”)

consultaSQL (p.e.)

subconjuntoresposta

otimização departe da consulta

global

consultaglobal

Page 61: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de Dados V- Sistemas de Bancos de Dados Heterogêneos (10): ‘Otimizador’ de Heterogêneos (10): ‘Otimizador’ de Consultas (3)Consultas (3)

“Planning functions” e “Wrapper Plans”: um Exemplo para um BD componente relacional “Planning functions”

plan_access(T, C, P) = R.scan(T,C,P,ds(T))

T = tabela

C = (conjunto de) colunas P = predicado ds(T) = retorna o ID do SGBD que armazena T

Page 62: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de Dados V- Sistemas de Bancos de Dados Heterogêneos (11): ‘Otimizador’ de Heterogêneos (11): ‘Otimizador’ de Consultas (4)Consultas (4)

• “Planning functions”

• Subconsulta a um BD componente (desmembramento da consulta global, pelo “mediator”)Select e.name, e.salary, d.budgetFrom Emp e, Dept dWhere e.salary > 5,000 And e.works_in = d.dno

plan_join(S1, S2, P) = R.join(S1, S2, P) S1, S2 = subplans

Condition: S1.Site = S2.Site

Page 63: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de Dados V- Sistemas de Bancos de Dados Heterogêneos (12): ‘Otimizador’ de Heterogêneos (12): ‘Otimizador’ de Consultas (5)Consultas (5)

• “Wrapper plan”plan_acess(Emp, {salary, works_in, name}

{salary > 5,000}) = R.scan(Emp, {salary, works_in, name}, {salary > 5,000}, D1)

plan_acess(Dept, {dno, budget}, {}) = R.scan(Dept, {dno, budget}, {}, D1)

Page 64: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de Dados V- Sistemas de Bancos de Dados Heterogêneos (13): ‘Otimizador’ de Heterogêneos (13): ‘Otimizador’ de Consultas (6)Consultas (6)

• “Wrapper plan”R.join(R.scan(Emp, {salary, works_in, name}, {salary > 5,000}, D1),

R.scan(Dept, {dno, budget}, {}, D1),

{Emp.works_in = Dept.dno})

A escolha dos “wrapper plans” obedece a uma lógica de otimização da consulta global, de acordo com o paradigma “dynamic programmnig”

Page 65: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de Dados V- Sistemas de Bancos de Dados Heterogêneos (14): ‘Otimizador’ de Heterogêneos (14): ‘Otimizador’ de Consultas (7)Consultas (7)

• Partes das consultas globais são processadas no “Mediator”– Integração e apresentação dos resultados– Mesmo operações intermediárias, como seleção e junção

Page 66: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de Dados V- Sistemas de Bancos de Dados Heterogêneos (15): ‘Otimizador’ de Heterogêneos (15): ‘Otimizador’ de Consultas (8)Consultas (8)

• Exemplo 1– Um “WWW database” componente só seleciona

registros segundo critérios pré-determinados• Livros da editora “John Wiley & Sons”• Seleções adicionais necessárias são feitas pelo

“Mediator”– Autores franceses

• Exemplo 2– A juncão de duas tabelas (nos componentes 1 e

2, respectivamente) é feita no “mediator”

Page 67: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de Dados V- Sistemas de Bancos de Dados Heterogêneos (15): ‘Otimizador’ de Heterogêneos (15): ‘Otimizador’ de Consultas (8)Consultas (8)

• Avaliação– Vantagens

• Apoiado em tecnologias provadas de BDD (planos de consulta, modelos de custo e “dynamic programming”)

• Flexibilidade da arquitetura proposta– Novos “wrappers” e BDs componentes– “Upgrades” de “wrappers” BDs componentes– “Mediators” distribuídos

• Reuso (ou quase) de “wrappers”

– Problemas• Modelos de custos são, em grande parte, um problema

aberto

Page 68: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

V- Sistemas de Bancos de Dados V- Sistemas de Bancos de Dados Heterogêneos (16): ‘Otimizador’ de Heterogêneos (16): ‘Otimizador’ de Consultas (9)Consultas (9)

• Uma abordagem de modelo de custos: “Learning Curve Approach”– Lembre-se: o “mediator” nada sabe dos BDs

componentes– Estimativa de custos de “wrapper plans”

• Monitoração do sistema, retendo estatísticas– Os últimos 3 planos envolvendo as tabelas A e B

tiveram custos de 10 seg, 20 seg e 30 seg, respectivamente

– Baseado nestas estatísticas, o modelo de custos pode estimar que o próximo plano envolvendo A e B deve custar 13 seg

Page 69: Rumo a Processamento de Consultas em Ambientes Altamente Distribuídos

VI- Agenda de PesquisaVI- Agenda de Pesquisa• Desafios

– Grande número de fontes de dados– Dados e organização de dados muito voláteis– Servidores de dados com pouca capacidade (“thin data

servers”)

• Tópicos de Pesquisa– “Dynamic Data Placement”– “Sensor Database Systems”– “Data Warehouses” Virtuais– Integração de Muitas Fontes de Dados

• “Data Web”– Integração de Muitas Fontes de Metadados

• “Semantic Web”