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
Ex: Mobile Client
Cache:
Cliente c_a;
Cliente c_c;
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
Client A
Database Server:
Query q1
Client B
Database:
Cliente = {
c1 ( ‘João’, ‘Rua a’);
c2 ( ‘Maria’, ‘Rua b’); }
Mecanismo de Caching

Estratégia de Coerência
Client A
Database Server:
Cache:
c_c1 ( ‘João’,
‘Rua a’);
Client B
return q1;
Database:
Cliente = {
c1 ( ‘João’, ‘Rua a’);
c2 ( ‘Maria’, ‘Rua b’); }
Mecanismo de Caching

Estratégia de Coerência
Client A
Database Server:
Cache:
c_c1 ( ‘João’,
‘Rua a’);
Client B
Update c1
Database:
Cliente = {
c1 ( ‘João’, ‘Rua C’);
c2 ( ‘Maria’, ‘Rua b’); }
Mecanismo de Caching

Estratégia de Coerência
INCOERENTE!
Client A
Database Server:
Cache:
c_c1 ( ‘João’,
‘Rua a’);
Client B
Database:
Cliente = {
c1 ( ‘João’, ‘Rua C’);
c2 ( ‘Maria’, ‘Rua b’); }
- Que estratégia usar para corrigir este problema?
Mecanismo de Caching

Políticas de Substituição
–
O tamanho do cache é limitado
Client A
Database Server:
Cache:
c_c1 ( ‘João’, ‘Rua a’);
c_c3 ( ‘Maria’, ‘Rua m’);
c_c4 ( ‘José’, ‘Rua j’);
Query q
Mecanismo de Caching

Políticas de Substituição
–
O tamanho do cache é limitado
Client A
Database Server:
Cache:
c5 ( ‘Francisco’, ‘Rua f’);
c_c1 ( ‘João’, ‘Rua a’);
c_c3 ( ‘Maria’, ‘Rua m’);
c_c4 ( ‘José’, ‘Rua j’);
ESTÁ CHEIO!
Mecanismo de Caching

Políticas de Substituição
–
O tamanho do cache é limitado
Client A
Database Server:
Cache:
c5 ( ‘Francisco’, ‘Rua f’);
c_c1 ( ‘João’, ‘Rua a’);
c_c3 ( ‘Maria’, ‘Rua m’);
c_c4 ( ‘José’, ‘Rua j’);
ESTÁ CHEIO!
- Qual item substituir?
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
Local
Network
Client A
Database Server:
Cache:
c_c1 ( ‘João’,
‘Rua C’);
Database:
Cliente = {
c1 ( ‘João’, ‘Rua C’);
c2 ( ‘Maria’, ‘Rua b’); }
Client B
Update c1
Caching Convencional

Estratégia de Coerência
Local
Network
Client A
Database Server:
Cache:
c_c1 ( ‘João’,
‘Rua C’);
Client B
Refresh
Database:
Cliente = {
c1 ( ‘João’, ‘Rua C’);
c2 ( ‘Maria’, ‘Rua b’); }
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
Cache:
c_c1 ( ‘João’,
‘Rua a’);
Database:
Cliente = {
c1 ( ‘João’, ‘Rua C’);
c2 ( ‘Maria’, ‘Rua b’); }
wireless
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ência
Database
server (S)
Identificados todos os
itens qualificados (I)
Avaliação da
Query
Envio de Q
para o servidor
Mobile
client (S)
Envio de i
para o servidor
(I – i)
Itens
qualificados
para serem
enviados para o
cliente
Avaliação da
Query
Início da
Query (Q)
Identificados
itens locais
qualificados
(i)
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
X
attribute a
attribute b
attribute c
Mobile client
Remote
(R_oid,R_host)
Cache
X
C_X
attribute c_a
method a()
method b()
method c()
attribute c_b
attribute c_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
c_vacancy
Places To Stay
Substituto x
Caching Móvel - Modelo
Server
CACHE
c_vacancy
Places To Stay
Substituto x
x.name
x.city
y.name
y.city
y.vacancy
Caching Móvel - Modelo
Server
CACHE
c_vacancy
Places To Stay
Substituto x
x.name
x.city
y.name
y.city
y.vacancy
Caching Móvel - Modelo
Server
CACHE
c_name
c_city
c_vacancy
Places To Stay
Substituto x
Substituto y
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
W(x)
W(x)
W(x)
W(x)
W(x)
t
0
5
10
15
20
25
30
35
W(X) = Write (X)
Caching Móvel

Erro
W(x)
Servidor
t
Refresh(x)
t
Cliente

False Alarm
t
Servidor
Refresh(x)
Cliente
Não houve escrita!
Refresh(x)
t
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
A(x)
A(x)
A(x)
A(x)
A(x)
t
0
5
10
15
20
25
30
35
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
A(x)
A(x)
A(x)
A(x)
A(x)
t
0
5
Janela:
10
15
10 5
10 5
20
25
30
35
A(X) =Acessa (X)
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.
Download

Mecanismo de Caching