Cache local
NCache prend en charge un cache autonome non clusterisé qui réside sur un seul nœud. Le cache local présente des fonctionnalités similaires à celles des autres caches en cluster, c'est-à-dire qu'il possède toutes les fonctionnalités de mise en cache fournies dans toute autre topologie de mise en cache, mais il n'est pas évolutif ni tolérant aux pannes comme les caches en cluster. Comme il s'agit d'un cache à serveur unique, sa capacité transactionnelle ne peut pas être augmentée en ajoutant plusieurs serveurs. En outre, il crée une seule instance de cache (pas de sauvegarde ni de réplique). Ainsi, en cas de panne, toutes les données mises en cache sont perdues. Un cache local convient aux applications avec un petit nombre de clients avec une faible activité ou pour lesquelles les applications n'ont pas besoin de mettre en cache de grandes quantités de données.
Niveaux d'isolement dans le cache local
Un cache local a deux niveaux d'isolement comme suit :
InProc (en cours)
Ce niveau d'isolement signifie que le cache réside dans l'espace mémoire de l'application client. Comme ce type de cache existe au sein du processus de candidature, le temps de réponse est plus rapide. Dans InProc, NCache conserve les données mises en cache sous forme d'objets actifs (et non sous forme sérialisée), ce qui réduit le coût de sérialisation/désérialisation. Cependant, ces applications peuvent être confrontées à des limitations de mémoire, puisque l'application et le cache partagent la même mémoire. De plus, dans ce cas, les données mises en cache ne peuvent pas être partagées avec des applications exécutées en dehors de ce processus.
Étant donné que les objets sont stockés dans le même espace d'adressage que le client de cache, les clients de cache obtiennent la référence aux objets mis en cache au lieu d'une copie. Pour les applications multithread, où plusieurs threads modifient le même objet, ces modifications doivent être synchronisées à l'aide de diverses techniques de synchronisation disponibles dans le .NET framework.
Notes
Bien que les objets ne soient pas conservés sous forme sérialisée dans les caches InProc, il est néanmoins nécessaire que tous les objets soient marqués comme Serializable
. NCache calcule la taille d'un objet en sérialisant les objets, ce qui facilite ultérieurement l'expulsion en cas de besoin.
OutProc (hors processus)
Ce niveau d'isolement signifie que le cache réside dans un processus distinct (le NCache processus de service) à partir de l’application client. Plusieurs clients (locaux et distants) peuvent se connecter au même cache pour partager des données. La latence, dans ce cas, est supérieure au cache InProc, en raison du coût de communication en dehors du processus.
Le cache local OutProc convient aux situations dans lesquelles plusieurs clients de l'application doivent accéder aux mêmes données mises en cache. Par exemple, dans un jardin Web où chaque application ASP.NET s'exécute dans un processus de travail distinct, un cache OutProc doit être utilisé. De plus, dans les applications ASP.NET, l'utilisation d'une instance de cache InProc n'est pas considérée comme la meilleure option en raison des limitations de la mémoire du processus. Cependant, notez qu'il y aura une surcharge liée au transfert de données entre le processus d'application et le cache lui-même.
Voir aussi
Topologies de cache
Cluster de cache
Client cache
Cache Client
Pont pour la réplication WAN