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....
![Page 1: Um framework para a gerência de cache de Banco de Dados Móvel: Design and Avaliação Yuri A. Lacerda.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/1.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/2.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/3.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/4.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/5.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/6.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/7.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/8.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/9.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/10.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/11.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/12.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/13.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/14.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/15.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/16.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/17.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/18.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/19.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/20.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/21.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/22.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/23.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/24.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/25.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/26.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/27.jpg)
![Page 28: Um framework para a gerência de cache de Banco de Dados Móvel: Design and Avaliação Yuri A. Lacerda.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/28.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/29.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/30.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/31.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/32.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/33.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/34.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/35.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/36.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/37.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/38.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/39.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/40.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/41.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/42.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/43.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/44.jpg)
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.](https://reader034.fdocumentos.com/reader034/viewer/2022051820/552fc12e497959413d8d3369/html5/thumbnails/45.jpg)
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.