ajax – adaptive join algorithm for extreme restrictions
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 PresentationTRANSCRIPT
![Page 1: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/1.jpg)
AJAX – Adaptive Join Algorithm for Extreme
Restrictions
SBBD 2007
Eriko Werbet
Angelo Brayner
Universidade de Fortaleza
Instituto Atlântico
![Page 2: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/2.jpg)
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
![Page 3: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/3.jpg)
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.
![Page 4: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/4.jpg)
Mobilidade e Bancos de Dados
Ambiente de Computação Móvel
Redes ad hoc Mobilidade Física e
Lógica (Agentes) Desafios Soluções
![Page 5: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/5.jpg)
Bancos de Dados Móveis
Autônomos Heterogêneos Distribuídos
![Page 6: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/6.jpg)
A Arquitetura AMDB
Acesso a Bancos de Dados Móveis
Comunidade de Bancos de Dados Móveis
Interoperabilidade Agentes Móveis x
Estáticos
![Page 7: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/7.jpg)
O Agente Executor
Acesso aos Membros da CBDM Consultas Coordenador do Protocolo 2PC Operações de Junção
![Page 8: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/8.jpg)
O Algoritmo AJAX
Adaptive Join Algorithm for Extreme Restrictions
Simetria Pipelining Buckets Dinâmicos Comparação
Progressiva Prevenção de Estouro
de Memória
![Page 9: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/9.jpg)
Simetria
Tratar as fontes de dados de maneira independente, por meio de multithreading.
Evitar o bloqueio ou atraso na execução da junção.
![Page 10: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/10.jpg)
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.
![Page 11: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/11.jpg)
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.
![Page 12: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/12.jpg)
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.
![Page 13: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/13.jpg)
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.
![Page 14: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/14.jpg)
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.
![Page 15: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/15.jpg)
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.
![Page 16: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/16.jpg)
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
![Page 17: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/17.jpg)
Resultados Experimentais
Eficácia Eficiência
![Page 18: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/18.jpg)
Testes de Eficácia
![Page 19: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/19.jpg)
Eficiência: AJAX versus XJoin
![Page 20: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/20.jpg)
Eficiência: AJAX x HMJ (1/2)
![Page 21: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/21.jpg)
Eficiência: AJAX x HMJ (2/2)
![Page 22: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/22.jpg)
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
![Page 23: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/23.jpg)
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
![Page 24: AJAX – Adaptive Join Algorithm for Extreme Restrictions](https://reader036.vdocument.in/reader036/viewer/2022062806/56814f36550346895dbcd17f/html5/thumbnails/24.jpg)
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!