A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Monografia Eriko Werbet Unifor-CNPq

Apresentações semelhantes


Apresentação em tema: "Monografia Eriko Werbet Unifor-CNPq"— Transcrição da apresentação:

1 Monografia Eriko Werbet Unifor-CNPq
AJAX – Algoritmo de Junção Adaptativo para eXecução em ambientes móveis Monografia Eriko Werbet Unifor-CNPq

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 O Algoritmo AJAX Adaptive Join Algorithm for mobile environments eXecution Simetria Pipelining Buckets Dinâmicos Comparação Progressiva Prevenção de Estouro de Memória

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.

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

16 AJAX em Pseudocódigo 1 thread de monitoramento EPSILON é iniciada em background; 2 thread de acesso à fonte de dados ALFA é iniciada; //simetria 3 se (operador depende de resultado parcial inferior) então 4 fonte BETA passa a ser o resultado parcial do operador inferior; 5 thread de acesso à fonte de dados BETA é iniciada; 6 iniciar geração da tabela hash para ambas as fontes; //dynamic bucket hashing 7 enquanto(não terminar o processamento) faça { //progressive probing 8 pegar próximo bucketAlfa; 9 localizar próximo bucketBeta pelo hashcode do bucketAlfa; 10 se (houver tuplas novas no bucketAlfa ou no bucketBeta) então { 11 se (a.UltimoProbe < b.Indice) então { //”a” é tupla de Alfa e “b” de Beta adicionar o par (a, b) no resultado; atualizar a.UltimoProbe; //last probe remembrance se (existir operador superior na consulta) então enviar tuplas parciais para o operador superior; //pipelining 16 } 17 se (EPSILON detectar a iminência de memory overflow) então { //overflow 18 escolher par de buckets que ocupa maior espaço de memória; 19 descarregar buckets escolhidos em disco; 20 } se (as fontes atrasarem e houver buckets em disco) então { //segunda fase comparar tuplas em disco [Alfa] com tuplas em disco [Beta]; 23 comparar tuplas em disco [Alfa] com tuplas em memória [Beta]; comparar tuplas em memória [Alfa] com tuplas em disco [Beta]; comparar tuplas em memória [Alfa] com tuplas em memória [Beta]; } 27 } 28 }

17 Implementação do Protótipo
Linguagem Java Threads simples Função hash embutida etc AMDB e Aglets

18 Estruturas de Dados LinkedList Tupla Bucket TabelaHash

19 Classes de Suporte Ajax FonteDados Timer TimerTask

20 Detalhes de Implementação
Desafios Multithreading Sincronização Persistência HashTable de Java A Tabela Hash do AJAX Encadeada Buckets Dinâmicos Deque (Deck)

21 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

22 Trabalhos Futuros Testes comparativos
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

23 Agradecimentos CNPq Angelo Brayner, Dr-Ing. José de Aguiar, M.Sc.
A todos que tornaram este projeto possível!


Carregar ppt "Monografia Eriko Werbet Unifor-CNPq"

Apresentações semelhantes


Anúncios Google