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 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 A Database 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 A Database 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ência Database server (S) Mobile client (S) Início da Query (Q) Envio de Q para o servidor Avaliação da Query Identificados itens locais qualificados (i) Identificados todos os itens qualificados (I) Envio de i para o servidor (I – i) Itens qualificados para 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 serverMobile 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.name x.city y.name y.city y.vacancy
Caching Móvel - Modelo CACHE Places To Stay c_vacancy Substituto x Server x.name x.city y.name y.city y.vacancy
Caching Móvel - Modelo CACHE Places To Stay c_name c_city c_vacancy Substituto x Substituto 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 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) 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 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 A(x) A(X) =Acessa (X) Janela: 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 [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.