Um framework para a gerência de cache de Banco de Dados Móvel: Design and Avaliação Yuri A....
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.