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

Post on 18-Apr-2015

102 views 0 download

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

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

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.

Introdução

Database Server

Mobile Client

Mobile Client

Mobile Client

Rede Wireless

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

Mecanismo de Caching

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

Mecanismo de Caching

Granularidade:– Unidade que será armazenada no cache:

Página Objeto Atributo

Cache: Cliente c_a; Cliente c_c;

Ex: Mobile Client

Mecanismo de Caching

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

Caching Móvel - Modelo

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

– Não impede que se use para Relacional

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

Caching Móvel - Modelo

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

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

Caching Móvel - Modelo

CACHE

Places To Stay

c_vacancy

Substituto x

Caching Móvel - Modelo

CACHE

Places To Stay

c_vacancy

Substituto x

Server

x.namex.cityy.namey.cityy.vacancy

Caching Móvel - Modelo

CACHE

Places To Stay

c_vacancy

Substituto x

Server

x.namex.cityy.namey.cityy.vacancy

Caching Móvel - Modelo

CACHE

Places To Stay

c_namec_city

c_vacancy

Substituto xSubstituto y

Server

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

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

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.

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)

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!

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

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

Caching Móvel

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

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

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.

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

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.