Mise en cache locale

La mise en cache locale des données est une technique utilisée pour accélérer l’accès réseau aux fichiers de données. Cela implique la mise en cache des données sur les clients plutôt que sur les serveurs lorsque cela est possible.

L’effet de la mise en cache locale est qu’elle permet de combiner plusieurs opérations d’écriture sur la même région d’un fichier en une seule opération d’écriture sur le réseau. La mise en cache locale réduit le trafic réseau, car les données sont écrites une seule fois. Une telle mise en cache améliore le temps de réponse apparent des applications, car les applications n’attendent pas que les données soient envoyées sur le réseau au serveur.

La mise en cache locale des données à lire peut sembler accélérer les choses en lisant à l’avance. Un exemple simple est une application qui accède aux données de manière séquentielle, comme le préprocesseur d’un compilateur. Dans ce cas, la couche réseau du système d’exploitation lit les données sur le réseau avant que l’application demande les données. Dans l’idéal, le réseau fournit les données avant que l’application ne les demande au système de fichiers, ce qui entraîne une réponse quasi instantanée. Dans la pratique, cela se produit rarement, mais souvent la lecture anticipée accélère les applications en anticipant la demande suivante.

La mise en cache locale peut également aider à réduire le trafic réseau en lisant une partie d’un fichier sur le réseau une fois, puis en la conservant dans le cache local. Opérations de lecture suivantes sur cette partie par l’application lue à partir du cache local.

Un type d’application qui peut tirer parti de la mise en cache locale est les fichiers batch. Les processeurs de commandes lisent et exécutent un fichier batch une ligne à la fois. Pour chaque ligne, le processeur de commandes ouvre le fichier, effectue des recherches au début de la ligne, lit autant qu’il en a besoin, ferme le fichier, puis exécute la ligne. Chaque ligne génère beaucoup de trafic réseau. Le trafic réseau peut être considérablement réduit en mettant en cache l’ensemble du fichier batch sur un client.

La mise en cache locale aide également à résoudre un autre problème associé aux réseaux, en particulier aux réseaux qui effectuent un travail sur des modems et d’autres canaux minces : le temps de réponse lent. Les utilisateurs ne veulent pas attendre que les données soient récupérées sur le réseau, modifiées, puis réécrites. Avec la lecture anticipée et la mise en cache d’écriture, il semble souvent que ces fonctions fonctionnent beaucoup plus rapidement qu’elles ne le font réellement.

Un risque de mise en cache locale est que les données écrites ont uniquement autant d’intégrité que le client lui-même tant que les données sont mises en cache sur le client. En général, les données mises en cache localement doivent être vidées sur le serveur dès que possible. Grâce aux systèmes d’exploitation modernes et à la prise en charge matérielle, comme les alimentations sans interruption, le risque de perte de données mises en cache localement est réduit. Mais le risque existe toujours et vous devez considérer à la fois le compromis entre l’intégrité des données et la vitesse de réponse apparente, et le compromis entre l’intégrité des données et le trafic réseau réduit.