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

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

Um framework para a gerência de cache de Banco de Dados Móvel: Design and Avaliação Yuri A. Lacerda.

Apresentações semelhantes


Apresentação em tema: "Um framework para a gerência de cache de Banco de Dados Móvel: Design and Avaliação Yuri A. Lacerda."— Transcrição da apresentação:

1 Um framework para a gerência de cache de Banco de Dados Móvel: Design and Avaliação Yuri A. Lacerda

2 Cronograma Introdução Mecanismo de Caching Caching Convencional Caching Móvel Conclusão Referências

3 Introdução Em um ambiente móvel os servidores de banco de dados enviam informações via wireless para diversos clientes. Clientes móveis podem possuir perfis variados: notebooks, palmtops, celulares, etc.

4 Introdução Database Server Mobile Client Rede Wireless

5 Introdução Canal de transmissão wireless: – Baixa largura de banda; – Instabilidade na conexão; Motivam: – Armazenar itens mais acessados do banco de dados em um cache no cliente móvel: Aumentar o desempenho ao realizar consultas Prover disponibilidade mesmo desconectado

6 Mecanismo de Caching Granularidade Estratégia de Coerência Políticas de Substituição

7 Mecanismo de Caching Granularidade: – Unidade que será armazenada no cache: Página Objeto Atributo Cache: Cliente c_a; Cliente c_c; Ex: Mobile Client

8 Mecanismo de Caching Estratégia de Coerência – Invalidar os itens que estão incoerentes no cache – Atualizar os itens inválidos

9 Mecanismo de Caching Estratégia de Coerência Database Server: Database: Cliente = { c1 ( João, Rua a); c2 ( Maria, Rua b); } Client A Client B Query q1

10 Mecanismo de Caching Estratégia de Coerência Database Server: Database: Cliente = { c1 ( João, Rua a); c2 ( Maria, Rua b); } Cache: c_c1 ( João, Rua a); return q1; Client A Client B

11 Mecanismo de Caching Estratégia de Coerência Database Server: Database: Cliente = { c1 ( João, Rua C); c2 ( Maria, Rua b); } Update c1 Client A Client B Cache: c_c1 ( João, Rua a);

12 Mecanismo de Caching Estratégia de Coerência Database Server: Database: Cliente = { c1 ( João, Rua C); c2 ( Maria, Rua b); } INCOERENTE! - Que estratégia usar para corrigir este problema? Client A Client B Cache: c_c1 ( João, Rua a);

13 Mecanismo de Caching Políticas de Substituição – O tamanho do cache é limitado Client A Cache: c_c1 ( João, Rua a); c_c3 ( Maria, Rua m); c_c4 ( José, Rua j); Database Server: Query q

14 Mecanismo de Caching Políticas de Substituição – O tamanho do cache é limitado Client A Database Server: c5 ( Francisco, Rua f); ESTÁ CHEIO! Cache: c_c1 ( João, Rua a); c_c3 ( Maria, Rua m); c_c4 ( José, Rua j);

15 Mecanismo de Caching Políticas de Substituição – O tamanho do cache é limitado Client A Database Server: c5 ( Francisco, Rua f); ESTÁ CHEIO! - Qual item substituir? Cache: c_c1 ( João, Rua a); c_c3 ( Maria, Rua m); c_c4 ( José, Rua j);

16 Caching Convencional Banco de Dados Cliente / Servidor – Tráfego é comparado ao acesso ao disco – Diminuir latência da rede Granularidade – Mecanismo de cache é baseado em Páginas – Servidor também é baseado em Páginas – Princípio da Localidade Vizinhos serão acessados num futuro próximo – Overhead compensa se vizinhos forem acessados num futuro próximo

17 Caching Convencional Por que não aplicar a MDS? – Alta perda de energia (Baterias) – Overhead devido a pequena largura banda – Espaço de armazenamento pequeno

18 Caching Convencional Estratégia de Coerência – O servidor possui conhecimento do cache de cada cliente e envia mensagem quando um item base é atualizado – Atualização do cache em cada cliente

19 Caching Convencional Estratégia de Coerência Database Server: Database: Cliente = { c1 ( João, Rua C); c2 ( Maria, Rua b); } Client A Client B Update c1 Local Network Cache: c_c1 ( João,Rua C);

20 Caching Convencional Estratégia de Coerência Database Server: Database: Cliente = { c1 ( João, Rua C); c2 ( Maria, Rua b); } Client A Client B Refresh Local Network Cache: c_c1 ( João,Rua C);

21 Caching Convencional Por que não aplicar a MDS? – Clientes trafegam livremente – Servidor pode não estar capaz de enviar mensagem para todos Database Server: MC 2 wireless Database: Cliente = { c1 ( João, Rua C); c2 ( Maria, Rua b); } Cache: c_c1 ( João, Rua a); Cache: c_c1 ( João, Rua a);

22 Caching Convencional Estratégia de Coerência – Solução Leases [2] Cada item no cache possui um refresh-time pré- estabelecido Ao expirar o item é atualizado Que valor utilizar? – Muito Alto: Pode ter itens desatualizados – Muito Baixo: Atualizações e muito tráfego desnecessários Deveria ser adaptado automaticamente.

23 Caching Convencional Políticas de Substituição – Algumas soluções existentes Least Recently Used (LRU); – LRU-k Least Reference Density (LRD); Optimal; CLOCK; WORST; Entre outras

24 Caching Móvel - Modelo Sequência Database server (S) Mobile client (S) Início da Query (Q) Envio de Q para o servidor Avaliação da Query Identificados itens locais qualificados (i) Identificados todos os itens qualificados (I) Envio de i para o servidor (I – i) Itens qualificados para serem enviados para o cliente Identificados todos os itens qualificados Políticas de Substituição

25 Caching Móvel - Modelo Paradigma ponto-a-ponto Banco de Dados Orientado a Objetos – Não impede que se use para Relacional

26 Caching Móvel - Modelo Cache Table – É um mini banco de dados que pode ser manipulado pelo servidor. – Estrutura: Database serverMobile client X attribute a attribute b attribute c Remote (R_oid,R_host) Cache X C_X attribute c_a attribute c_b attribute c_c method a() method b() method c() substituto x

27

28 Caching Móvel - Modelo Granularidade – Caching de Atributo – Caching de Objeto – Caching Híbrido

29 Caching Móvel - Modelo Caching de Atributo – O servidor só retorna para o cliente aqueles atributos que foram requisitados – Exemplo: Select x.name, x.city from x in Places to Stay where x.vacancy > 0 Consulta retorna dois objetos: x e y

30 Caching Móvel - Modelo CACHE Places To Stay c_vacancy Substituto x

31 Caching Móvel - Modelo CACHE Places To Stay c_vacancy Substituto x Server x.name x.city y.name y.city y.vacancy

32 Caching Móvel - Modelo CACHE Places To Stay c_vacancy Substituto x Server x.name x.city y.name y.city y.vacancy

33 Caching Móvel - Modelo CACHE Places To Stay c_name c_city c_vacancy Substituto x Substituto y Server

34 Caching Móvel - Modelo Caching de Objeto – Clientes móveis tendem a ter os objetos acessados mais frequentemente – Possuir todo o objeto pode evitar futuros acessos no servidor

35 Caching Móvel - Modelo Caching Híbrido – Armazena apenas os atributos de um objeto qualificado com uma grande probabilidade de ser acessado futuramente; – Probabilidade de Acesso Futuro ao Objeto > Threshold E

36 Caching Móvel Coerência de Cache – Cada cliente é responsável por se invalidar – Mesma estratégia de Leases, Refresh Time (RT), unido a heurísticas – Cada item tem seu RT baseado na probabilidade de ser atualizado: Caching de Atributo e Caching Híbrido: Atributos com RT. Caching de Objeto: Objeto com R.T.

37 Caching Móvel Estimativa do RT – X: item do cache – dx: duração da inter-chegada entre escritas – dx: média de Dx – Sx: desvio padrão – βx: frequência de atualização de x RT = dx + βx.Sx t 0 5 10 15 20 25 30 35 W(x) W(X) = Write (X)

38 Caching Móvel Erro False Alarm Servidor Cliente Servidor Cliente t t t t Refresh(x) W(x) Refresh(x) Não houve escrita!

39 Caching Móvel Políticas de Substituição – Mean Armazena a média de acesso de cada item Problema: Não descobre a mudança rapidamente t 0 5 10 15 20 25 30 35 A(x) A(X) =Acessa (X) Média de todos os acesso de cada item

40 Caching Móvel – Window Armazena uma janela dos valores inter-operações Problema: Necessita armazenar uma janela para cada objeto ou atributo t 0 5 10 15 20 25 30 35 A(x) A(X) =Acessa (X) Janela: 10 5 Média dos últimos acessos

41 Caching Móvel – Exponentially Weighted Moving Average Resolve o problema da janela Adiciona pesos aos valores inter-operações

42 Simulações Não foram exaustivos Perfil do comportamento: – Granularidade Caching Híbrido possuiu desempenho superior: – Alta taxa de acertos – Baixo tempo de resposta – Baixa taxa de erros – Baixo taxa de alarmes falsos

43 Caching Móvel – Políticas de Substituição EWMA-0.5 desempenho bastante estável em diversos cenários; LRU, LRU-3 e LRD também possuíram um desempenho satisfatório para alguns cenários.

44 Conclusões Proposto um mecanismo para prover desempenho Caching baseado em paginas não é adequado Foi proposto um caching baseado em atributos, objetos ou híbrido. Estratégias de coerências e políticas de substituição que se adaptam a forma de acesso

45 Referências [1] B. Y. Chan, A. Si, H. V. Leong, A Framework for Cache Management for Mobile Databases: Design and Evaluation. 2001. [2] C.G. Gray and D.R. Cheriton, Leases: An efficient fault- tolerant mechanism for distributed file cache consistency, in Proceedings of SOSP, 1989, pp. 202–210.


Carregar ppt "Um framework para a gerência de cache de Banco de Dados Móvel: Design and Avaliação Yuri A. Lacerda."

Apresentações semelhantes


Anúncios Google