Share via


Cache local

O cache local de dados é uma técnica usada para acelerar o acesso à rede a arquivos de dados. Ele envolve armazenar dados em cache em clientes e não em servidores quando possível.

O efeito do cache local é que ele permite que várias operações de gravação na mesma região de um arquivo sejam combinadas em uma operação de gravação em toda a rede. O cache local reduz o tráfego de rede porque os dados são gravados uma vez. Esse cache melhora o tempo de resposta aparente dos aplicativos porque os aplicativos não esperam que os dados sejam enviados pela rede para o servidor.

O cache local de dados a serem lidos pode parecer acelerar as coisas por meio da leitura antecipada. Um exemplo simples é um aplicativo que acessa dados sequencialmente, como o pré-processador de um compilador. Nesses casos, a camada de rede do sistema operacional lê dados em toda a rede antes que o aplicativo solicite os dados. O ideal é que a rede forneça os dados antes que o aplicativo os solicite do sistema de arquivos, resultando em uma resposta quase instantânea. Na prática, isso raramente acontece, mas muitas vezes a leitura antecipada acelera os aplicativos antecipando a próxima solicitação.

O cache local também pode ajudar a reduzir o tráfego de rede lendo uma parte de um arquivo em toda a rede uma vez e mantendo-o no cache local. Operações de leitura subsequentes nessa parte pelo aplicativo lidas do cache local.

Um tipo de aplicativo que pode se beneficiar do cache local são os arquivos em lote. Os processadores de comando leem e executam um arquivo em lote uma linha de cada vez. Para cada linha, o processador de comando abre o arquivo, pesquisa até o início da linha, lê o que precisa, fecha o arquivo e executa a linha. Cada linha resulta em muito tráfego de rede. O tráfego de rede pode ser reduzido consideravelmente armazenando em cache todo o arquivo em lote em um cliente.

O cache local também ajuda com outro problema associado às redes, especialmente redes que executam o trabalho em modems e outros pipes finos: tempo de resposta lento. Os usuários não querem esperar enquanto os dados são recuperados pela rede, modificados e gravados novamente. Com a leitura antecipada e o cache de gravação, geralmente parece que essas funções operam muito mais rápido do que realmente funcionam.

Um risco de cache local é que os dados gravados têm apenas tanta integridade quanto o próprio cliente, desde que os dados sejam armazenados em cache no cliente. Em geral, os dados armazenados em cache localmente devem ser liberados para o servidor assim que possível. Com sistemas operacionais modernos e suporte a hardware, como fontes de alimentação ininterruptas, o risco de perda de dados armazenados em cache localmente é reduzido. Mas o risco ainda existe e você deve considerar a compensação entre a integridade dos dados e a velocidade de resposta aparente e a compensação entre a integridade dos dados e o tráfego de rede reduzido.