Upload
eagan
View
24
Download
0
Tags:
Embed Size (px)
DESCRIPTION
AJAX – Adaptive Join Algorithm for Extreme Restrictions. SBBD 2007 Eriko Werbet Angelo Brayner Universidade 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 - PowerPoint PPT Presentation
Citation preview
AJAX – Adaptive Join Algorithm for Extreme
Restrictions
SBBD 2007
Eriko Werbet
Angelo Brayner
Universidade 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!