um framework para a gerência de cache de banco de dados móvel: design and avaliação yuri a....

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

Upload: internet

Post on 18-Apr-2015

102 views

Category:

Documents


0 download

TRANSCRIPT

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

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

Yuri A. Lacerda

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

Cronograma

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

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

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.

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

Introdução

Database Server

Mobile Client

Mobile Client

Mobile Client

Rede Wireless

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

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

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

Mecanismo de Caching

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

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

Mecanismo de Caching

Granularidade:– Unidade que será armazenada no cache:

Página Objeto Atributo

Cache: Cliente c_a; Cliente c_c;

Ex: Mobile Client

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

Mecanismo de Caching

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

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

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

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

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

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

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’);

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

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’);

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

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

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

Mecanismo de Caching

Políticas de Substituição– O tamanho do cache é limitado

Client ADatabase Server:

c5 ( ‘Francisco’, ‘Rua f’);

ESTÁ CHEIO!

Cache:c_c1 ( ‘João’, ‘Rua a’);c_c3 ( ‘Maria’, ‘Rua m’);c_c4 ( ‘José’, ‘Rua j’);

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

Mecanismo de Caching

Políticas de Substituição– O tamanho do cache é limitado

Client ADatabase 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’);

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

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

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

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

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

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

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

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’);

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

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’);

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

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’);

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

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.

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

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

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

Caching Móvel - Modelo

SequênciaDatabaseserver (S)

Mobile client (S) Início da

Query (Q)

Envio de Q para o servidor

Avaliação da Query

Avaliação da Query

Identificados itens locais qualificados

(i)

Identificados todos os itens qualificados (I)

Envio de i para o servidor

(I – i)

Itens qualificadospara serem enviados para o cliente

Identificados todos os itens qualificados

Políticas de Substituição

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

Caching Móvel - Modelo

Paradigma ponto-a-ponto Banco de Dados Orientado a Objetos

– Não impede que se use para Relacional

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

Caching Móvel - Modelo

Cache Table– É um mini banco de dados que pode ser manipulado pelo

servidor.

– Estrutura:Database server Mobile 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

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

Caching Móvel - Modelo

Granularidade– Caching de Atributo– Caching de Objeto– Caching Híbrido

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

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

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

Caching Móvel - Modelo

CACHE

Places To Stay

c_vacancy

Substituto x

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

Caching Móvel - Modelo

CACHE

Places To Stay

c_vacancy

Substituto x

Server

x.namex.cityy.namey.cityy.vacancy

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

Caching Móvel - Modelo

CACHE

Places To Stay

c_vacancy

Substituto x

Server

x.namex.cityy.namey.cityy.vacancy

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

Caching Móvel - Modelo

CACHE

Places To Stay

c_namec_city

c_vacancy

Substituto xSubstituto y

Server

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

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

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

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

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

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.

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

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) W(x) W(x) W(x)

W(X) = Write (X)

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

Caching Móvel

Erro

False Alarm

Servidor

Cliente

Servidor

Cliente

t

t

t

t

Refresh(x)

W(x)

Refresh(x) Refresh(x) Não houve escrita!

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

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) A(x) A(x) A(x)

A(X) =Acessa (X)

Média de todos os acesso de cada item

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

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) A(x) A(x) A(x)

A(X) =Acessa (X)

Janela: 10 5 10 5 Média dos últimos acessos

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

Caching Móvel

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

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

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

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

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.

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

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

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

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.