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

AJAX – Adaptive Join Algorithm for Extreme Restrictions

  • Upload
    eagan

  • View
    24

  • Download
    0

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

Page 1: 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

Page 2: AJAX – Adaptive Join Algorithm for Extreme Restrictions

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

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

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

Bancos de Dados Móveis

Autônomos Heterogêneos Distribuídos

Page 6: AJAX – Adaptive Join Algorithm for Extreme Restrictions

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

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

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

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

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

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

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

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

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

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

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

Resultados Experimentais

Eficácia Eficiência

Page 18: AJAX – Adaptive Join Algorithm for Extreme Restrictions

Testes de Eficácia

Page 19: AJAX – Adaptive Join Algorithm for Extreme Restrictions

Eficiência: AJAX versus XJoin

Page 20: AJAX – Adaptive Join Algorithm for Extreme Restrictions

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

Page 21: AJAX – Adaptive Join Algorithm for Extreme Restrictions

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

Page 22: AJAX – Adaptive Join Algorithm for Extreme Restrictions

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

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

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!