Upload
liliana-betty-conceicao-cruz
View
213
Download
0
Embed Size (px)
Citation preview
AJAX – Adaptive Join Algorithm for Extreme
Restrictions
SBBD 2007Eriko Werbet
Angelo BraynerUniversidade de Fortaleza
Instituto Atlântico
Motivação Computação Móvel Bancos de Dados + Mobilidade Mobilidade + Restrições = Atraso Técnicas Convencionais são Ineficientes Processamento de Consultas Adaptativo Definição de Operadores Adaptativos
Objetivos
Implementar um algoritmo de junção capaz de executar operações de junção de forma eficiente, num ambiente com suporte à mobilidade.
Este algoritmo deve adaptar-se dinamicamente às restrições do ambiente.
Mobilidade e Bancos de Dados Ambiente de
Computação Móvel Redes ad hoc Mobilidade Física e
Lógica (Agentes) Desafios Soluções
Bancos de Dados Móveis Autônomos Heterogêneos Distribuídos
A Arquitetura AMDB Acesso a Bancos de
Dados Móveis Comunidade de
Bancos de Dados Móveis
Interoperabilidade Agentes Móveis x
Estáticos
O Agente Executor Acesso aos Membros da CBDM Consultas Coordenador do Protocolo 2PC Operações de Junção
O Algoritmo AJAX Adaptive Join Algorithm
for Extreme Restrictions
Simetria Pipelining Buckets Dinâmicos Comparação
Progressiva Prevenção de Estouro
de Memória
Simetria Tratar as fontes de dados de maneira
independente, por meio de multithreading. Evitar o bloqueio ou atraso na execução da
junção.
Buckets Dinâmicos Comparação de buckets com o mesmo
“endereço” hash, em tabelas opostas. Buckets com tamanho variável implicam em
mais flexibilidade, pois não precisamos tratar bucket overflow.
Buckets podem acumular mais tuplas antes de iniciar o probing.Melhor adaptação à Comparação Progressiva.
Baixo overhead de manipulação.
Pipelining Suprimento de tuplas para
operadores mais altos na hierarquia da consulta.
Recebimento de tuplas de operadores mais baixos.
Padrão recursivo implica em pseudo-paralelismo na execução da consulta, ou seja, diminuição no tempo de resposta.
Comparação Progressiva Comparação cíclica dos
buckets. Cada par de buckets é
comparado e somente o conteúdo numa iteração “i” é considerado.Tuplas subseqüentes serão comparadas numa iteração “i + 1”.
Comparação e Hashing contínuo das tuplas.
Last Probe Remembrance Cada tupla do bucket
Alfa “lembra” a última tupla do bucket Beta (bucket oposto) que foi comparada com ela.
Evita Duplicatas. Evita Comparações
Desnecessárias.
Prevenção de Estouro de Memória A granularidade observada passa do nível de
bucket para o nível do sistema computacional.
Monitoramento da memória do sistema. Escolha de um ou vários pares de buckets
para descarregamento em disco. Minimal memory limit: limite de memória que
garante a execução da junção.
Fases de Execução Primeira Fase Fase de execução
normal do AJAX
Segunda Fase Executada quando
ocorre EOF ou quando as fontes estão em retardo.
O recebimento continua, mas a comparação passa a usar buckets em disco.
AJAX em PseudocódigoProcedure TupleArrival (tuple t, sources (A, B))Begin1. If t exceeds the minimal memory limit (a) Choose two buckets Ax and Bx. (b) Probe buckets Ax and Bx. (c) Flush buckets Ax and Bx. (d) Deallocate Ax and Bx.2. Calculate the hash of t. 3. Insert t in the correct bucket.EndProcedure ProgressiveProbing (buckets (A i, Bi), pages (PAi, PBi))Begin1. If buckets Ai or Bi got a new tuple t (a) Probe t with all tuples with position index lower than its LPR. (b) Update the LPR of all probed tuples with the position index of t. (c) Update the result stream. 1.1 If sources are blocked (a) Probe Ai with all disk pages with index less than its LPR. (b) Probe Bi with all disk pages with index less than its LPR. (c) Probe page PAi with all disk pages with index less than its LPR. (c) Probe page PBi with all disk pages with index less than its LPR. (d) Update the LPR of the involved tuples. (e) Update the result stream.End
Resultados Experimentais Eficácia Eficiência
Testes de Eficácia
Eficiência: AJAX versus XJoin
Eficiência: AJAX x HMJ (1/2)
Eficiência: AJAX x HMJ (2/2)
Conclusão AJAX garante: Produção incremental de tuplas-resultado Continuidade da execução da consulta
mesmo com fontes bloqueadas Reação proativa em caso de estouro de
memória
Trabalhos Futuros
Aperfeiçoamento da Tabela Hash do AJAX Definição de uma nova função hash Pesquisa de estruturas de dados mais
adaptadas ao contexto do AJAX
Agradecimentos CNPq Universidade de Fortaleza Instituto Atlântico Angelo Brayner, Dr-Ing. José de Aguiar, M.Sc. A todos que tornaram este projeto possível!