Para validar as funcionalidades do CacheSim foram programadas as políticas de substituição Semantic and Least Recently Used (SEMALRU) (GEETHA et al., 2009) e Least Semantically Related (LSR) (CALSAVARA, 2003), e reproduzidos os cenários de simulação apresentados nos trabalhos de Geetha, Ammasai e Monikandan (GEETHA et al., 2009) e Calsavara (CALSAVARA, 2003). Sendo a configuração de uma rede e seus caches algo simples e realizável a partir dos elementos fornecidos de maneira predefinida no CacheSim, optou-se por uma implementação mais complexa, visando demonstrar todo o poder de extensibilidade da ferramenta.
O princípio dos algoritmos SEMALRU e LSR é priorizar a permanência em cache daqueles objetos que possuam maior relação semântica com um objeto que esteja entrando em cache(GEETHA et al., 2009), (CALSAVARA, 2003). Por isso, o algoritmo analisa e organiza o cache de acordo coma sua semântica. Então, SEMALRU e LSR supõem que cada objeto de informação carrega, além da própria informação, uma sequência hierarquizada de grupos e sub-grupos de assuntos que identificam a sua própria semântica.
Assim, quando um novo objeto n estiver sendo inserido no cache, no caso de insuficiência de espaço, outros objetos deverão desocupá-lo. Nessa situação, serão removidos os objetos que possuem menor relação semântica com o objeto entrante, um por vez, até que o
espaço disponível em cache seja igual ou maior ao necessário.
A principal diferença entre SEMALRU e LSR é o método de exclusão de objetos do cachecom mesma distância semântica ao objeto entrante. No primeiro, arquivos candidatos à exclusão com mesma distância semântica ao novo arquivo são excluídos utilizando LRU. No segundo, a política de substituição pode variar. No trabalho de Calsavara (CALSAVARA, 2003), o critério de exclusão para objetos com mesma distância semântica ao novo objeto é a política de substituição SIZE.
A análise do desempenho dessas duas políticas, implementadas no CacheSim, é apresentada nas próximas subseções.
3.4.4.1 Análise de Desempenho: SEMALRU
O algoritmo SEMALRU foi codificado utilizando a interface para programação de extensões do CacheSim e comparado com o algoritmo LRU, tradicionalmente utilizado na Internet.
O cenário de validação consiste em duas estações de trabalho, cada uma associada a um servidor cache distinto. O primeiro cache faz uso da política SEMALRU, enquanto o segundo usa a política LRU. Cada usuário solicita ao cache a mesma sequência de documentos da web. No total, vinte e cinco páginas da Web são visitadas por cada usuário. Para cada visita, foram contabilizadas as taxas de acertos e número de substituições associadas a cada pedido.
O mesmo teste foi realizado cinco vezes, variando-se apenas o tamanho dos espaços disponíveis para armazenamento em cada cache. Estes iniciam e terminam com tamanho de 2.000 bytes e 10.000 bytes, respectivamente, incrementando 2.000 bytes a cada novo teste.
Para a reprodução de resultados apresentados em (GEETHA et al., 2009), três informações sobre o cenário de testes são necessárias, mas estão ausentes no texto descrito pelo autor. A primeira delas refere-se ao número de acessos a cada página pelos usuários; a segunda refere-se ao tamanho de cada documento; por fim, a terceira refere-se à distância semântica entre cada uma das páginas.
Visando suprir a falta dessas informações, vinte e cinco documentos foram gerados com tamanhos definidos aleatoriamente entre 1200 e 1400 bytes. No total, cada usuário faz 100 diferentes requisições intercaladas para as vinte e cinco páginas disponíveis seguindo uma FDP Zipf. Para definir o agrupamento semântico entre os arquivos, foi analisado um arquivo de logs do Squid: observou-se que as vinte e cinco páginas mais visitadas estavam agrupadas em três
grupos e subgrupos. Devido a isso, optou-se por uma árvore semântica semelhante à apresentada na Figura 13.
Figura 13 – Árvore semântica adotada para reprodução de cenários de simulação.
Grupo 1 Grupo 2 Grupo 3 Grupo 4 Grupo 5 Grupo 6 Grupo 7 Grupo 8 Grupo 9
Os grupos e tamanhos dos arquivos são apresentados na Tabela 1. Arquivos de mesmo grupo têm entre si distância semântica zero, enquanto que a distância entre os grupos é expressa como pesos nos arcos que ligam os nós de diretório da árvore semântica.
Tabela 1 – Agrupamento semântico dos arquivos de prova utilizados na reprodução da política SEMALRU.
Grupo (Id do arquivo , tamanho do arquivo) 1 (1,8944); (5,4763); (13,11421); (22,10127) 2 (2, 6942); (10, 4211); (19, 7013) 3 (3, 5047); (11, 11908); (20, 10813) 4 (4, 4324); (12, 11815); (21, 8496) 5 (6, 7833); (15, 7016) 6 (7, 8012); (16, 5894); (24, 6370) 7 (8, 6183); (17, 8645) 8 (9, 11704); (18, 5085) 9 (14, 6924);(23, 7695);(25, 10597)
3.4.4.2 Resultados Obtidos
Na Figura 14 são apresentadas as taxas de acertos obtidas pelas políticas SEMALRU e LRU, respectivamente. É possível observar que a política baseada em semântica apresenta maior taxa de acertos quando comparada à LRU pura. Observa-se também o aumento da taxa de acertos quando se incrementa o tamanho do cache.
Figura 14 – Comparativo de taxa de acertos das políticas SEMALRU e LRU.
Na Figura 15 é apresento o número de substituição de documentos obtido pelas políticas SEMALRU e LRU, variando-se o tamanho do cache. No gráfico é possível observar que o número de substituições quando se utiliza a política SEMALRU é bem menor quando comparada ao cache que faz uso da política LRU. Assim, a política SEMALRU apresenta-se superior à LRU em termos de taxa de acertos de documentos solicitados e, consequentemente, minimiza o número de substituições de documentos em cache. Diante disso, SEMALRU pode melhorar a performance do serviço de cache, minimizando todo o trafego e a latência de rede
3.4.4.3 Análise de Desempenho: LSR
O algoritmo LSR (CALSAVARA, 2003) foi implementado para fins de validação e comparação com algoritmos tradicionalmente utilizados na Internet.
O cenário de testes consiste de quatro estações de trabalho associadas a caches distintos, cada uma fazendo uso de uma das quatro políticas de substituição: LSR, LFF, LRU e SIZE. No trabalho original (CALSAVARA, 2003), obteve-se a distribuição de acessos a
Figura 15 – Comparativo de número de substituições para as políticas SEMALRU e LRU.
documentos na Internet a partir de arquivo de registros de acessos do proxy Squid.
Para a reprodução de resultados realizada neste trabalho, os conteúdos são escolhidos, sem prejuízo ao cenário original, segundo a FDP Zipf. Foram geradas sequências para 1.000, 2.000, 3.000, 4.000, 5.000, 6.000, 7.000, 8.000, 9.000, 10.000, 15.000, 20.000 e 30.000 acessos a documentos. Essas 13 sequências foram submetidas para as quatro estratégias (LSR, SIZE, LRU e LFU) em análise, e para os seis seguintes tamanhos de cache: 1.000.000, 1.500.000, 2.000.000, 2.500.000, 5.000.000 e 10.000.000 unidades de medida (UM).
As informações do número de arquivos e seus tamanhos e distância semântica entre eles foram omitidas no texto original (CALSAVARA, 2003). Para suprir a falta dessas informações, os arquivos utilizados em cada cenário de simulação são gerados aleatoriamente, com tamanhos que variam de 200.000 a 2.000.000 unidades de medida. A árvore semântica utilizada para o agrupamento dos arquivos é semelhante à da Figura 13. Os grupos e tamanhos dos arquivos são apresentados na Tabela 2.
3.4.4.4 Resultados Obtidos
Na Figura 16 é apresentada apresenta a comparação entre as políticas LSR, LRU, LFU e SIZE. Observa-se que para o cenário descrito, a política baseada em semântica apresenta a melhor taxa de acerto que as demais, sendo seguida, nessa ordem pelas políticas LRU, SIZE e LFU.
Tabela 2 – Agrupamento semântico dos arquivos de prova utilizados na reprodução da política LSR.
Grupo (Id do arquivo , tamanho do arquivo)
1 (1,260684); (4,1004520); (5, 532436); (10,211114); (23,1546804) 2 (3, 1252075);(7, 1766877); (15, 691792);(24, 1759982) 3 (2, 1305419);(8, 1892031); (16, 242699);(25, 1351264) 4 (6, 1515562);(17, 1344748) 5 (9, 294234); (20, 822475) 6 (14, 1754885); (21, 238343) 7 (13, 325171); (22, 1775281) 8 (12, 1390523); (19, 473524) 9 (11, 514267)(18, 973738)
Figura 16 – Comparativo de taxa de acertos das políticas LSR, LRU, LFU e SIZE.
Pode-se observar na Figura 17 que, para as quatro estratégias, a probabilidade de acerto aumenta à medida que aumenta o tamanho do cache. Este gráfico permite observar ainda que há uma convergência na probabilidade de acerto entre as quatro estratégias à medida que o cacheaumenta, isto é, a estratégia adotada não influencia na probabilidade de acerto. A explica- ção para isso é que, com caches maiores, maiores também são as chances de armazenamento de todos os objetos solicitados pelo usuário.