1 / 24

AJAX – Adaptive Join Algorithm for Extreme Restrictions

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

eagan
Download Presentation

AJAX – Adaptive Join Algorithm for Extreme Restrictions

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AJAX – Adaptive Join Algorithm for Extreme Restrictions SBBD 2007 Eriko Werbet Angelo Brayner Universidade de Fortaleza Instituto Atlântico

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

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

  4. Mobilidade e Bancos de Dados • Ambiente de Computação Móvel • Redes ad hoc • Mobilidade Física e Lógica (Agentes) • Desafios • Soluções

  5. Bancos de Dados Móveis • Autônomos • Heterogêneos • Distribuídos

  6. A Arquitetura AMDB • Acesso a Bancos de Dados Móveis • Comunidade de Bancos de Dados Móveis • Interoperabilidade • Agentes Móveis x Estáticos

  7. O Agente Executor • Acesso aos Membros da CBDM • Consultas • Coordenador do Protocolo 2PC • Operações de Junção

  8. Adaptive Join Algorithm for Extreme Restrictions Simetria Pipelining Buckets Dinâmicos Comparação Progressiva Prevenção de Estouro de Memória O Algoritmo AJAX

  9. Simetria • Tratar as fontes de dados de maneira independente, por meio de multithreading. • Evitar o bloqueio ou atraso na execução da junção.

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

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

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

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

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

  15. 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. Fases de Execução

  16. Procedure TupleArrival (tuple t, sources (A, B)) Begin 1. 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. End Procedure ProgressiveProbing (buckets (Ai, Bi), pages (PAi, PBi)) Begin 1. 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 AJAX em Pseudocódigo

  17. Resultados Experimentais • Eficácia • Eficiência

  18. Testes de Eficácia

  19. Eficiência: AJAX versus XJoin

  20. Eficiência: AJAX x HMJ (1/2)

  21. Eficiência: AJAX x HMJ (2/2)

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

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

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

More Related