• Facebook
  • Twitter
  • Youtube
  • Doublé
  • RSS
  • Docs
  • Comparaisons
  • Blog
  • Télécharger
  • Contactez-Nous
Télécharger
Afficher/masquer la table des matières

Cache Client

NCache Le cache client est le cache L1 local et synchronisé sur le nœud d'application. Il conserve les données les plus fréquemment consultées afin d'éviter la latence réseau ; il agit ainsi comme une couche optimisée en termes de performances entre l'application et le cache L2 en cluster. Il prend en charge les modes d'isolation InProc et OutProc. NCache fonctionne dans deux configurations différentes, Régulier et Données complètes Cache client.

Cache client régulier

Le cache client standard fonctionne comme un cache local (cache L1) sur la machine cliente. Il charge un sous-ensemble de données fréquemment consultées depuis le cache clusterisé et le stocke à proximité de l'application. Cela réduit les fréquents déplacements réseau vers le serveur pour des données similaires. Pour garantir l'intégrité des données, le cache client se synchronise avec le cache clusterisé (cache L2) en interrogeant ce dernier pour obtenir les notifications de modifications. Cependant, comme le cache L2 ne garantit pas l'intégralité des données du cache client standard, les requêtes sont toujours effectuées sur le cache clusterisé (cache L1).

Toutes les opérations d'écriture basées sur des clés, telles que Ajouter, insérer et SupprimerLes opérations de traitement sont d'abord effectuées sur le cache clusterisé. Une fois ces opérations terminées avec succès, les données sont ajoutées au cache client standard. Pour les opérations de lecture, si les données ne sont pas trouvées dans le cache client, elles sont récupérées depuis le cache clusterisé, puis ajoutées au cache client.

Cache client de données complètes

Le cache client Full-Data offre un accès rapide aux données mises en cache en chargeant des jeux de données complets depuis le cache clusterisé (cache L1) au démarrage. Pour une utilisation optimisée de la mémoire, il permet à l'utilisateur de configurer les types de données de référence. Cependant, la configuration du cache client Full-Data requiert plus de mémoire sur les machines clientes que d'habitude. Par défaut, si une clé demandée pour le ou les types de données configurés n'est pas trouvée dans le cache client Full-Data (L1), la recherche se rabat automatiquement sur le cache clusterisé (L2) pour les opérations de lecture. requêtes, ces requêtes sont exécutées sur le cache clusterisé pour les types de données de référence non configurés. Cependant, pour les types de données de référence configurés, les requêtes sont d'abord exécutées sur le cache client et ne reviennent au cache clusterisé que si les données sont partiellement chargées.

Important

Vous ne pouvez pas créer un Cache client de données complètes sans configurer au moins un type de données de référence.

Toutefois, pour les types de données de référence configurés, si votre cas d'utilisation exige une dépendance stricte aux données locales, sans aucun recours au cache en cluster, vous pouvez activer Lectures locales strictes et Application stricte des requêtes via les options de configuration fournies dans le NCache Centre de gestionCes fonctionnalités sont décrites en détail ci-dessous.

Note

Le cache client de données complètes ne peut pas être configurée tandis que le le cache en cluster est en cours d'exécution.

Important

Si vous apportez des modifications de configuration au Cache client de données complètes, Vous devez recommencer le cache client.

Seuls les éléments configurés comme types de données de référence seront inclus dans les opérations d'écriture basées sur des clés, telles que l'ajout, l'insertion et la suppression. Ces opérations sont d'abord effectuées sur le cache clusterisé. Les autres instances du cache client sont mises à jour via un mécanisme de synchronisation des données en arrière-plan, expliqué plus loin.

Lectures locales strictes

Par défaut, pour toutes les opérations de lecture, la requête est dirigée vers le cache client (L1). Si les données demandées ne sont pas trouvées, la requête est dirigée vers le cache clusterisé (L2). Cependant, si les données ne sont pas disponibles dans le cache client et que vous ne souhaitez pas que la lecture retourne au cache clusterisé, vous pouvez utiliser l'option Lectures locales strictes Fonctionnalité. Grâce à cette fonctionnalité, toute clé non trouvée dans le cache client de données complètes (L1) entraînera un échec de cache, sans tentative de récupération des données depuis le cache clusterisé (L2). Ce comportement garantit que toutes les opérations de lecture sont effectuées exclusivement depuis le cache local. Vous pouvez activer cette fonctionnalité en sélectionnant « Renvoyer un échec de cache pour toute clé non trouvée dans le cache client, sans retour au cache en cluster" case à cocher via le NCache Centre de gestion. Par conséquent, les opérations de lecture reposent uniquement sur le cache client, permettant ainsi des lectures locales strictes.

Application stricte des requêtes

Les requêtes sont d'abord exécutées sur le cache client et ne sont renvoyées vers le cache cluster que si les données y sont partiellement chargées. Cependant, si vous ne souhaitez pas que les requêtes soient exécutées sur le cache cluster, vous pouvez activer l'option Application stricte des requêtes Fonctionnalité. Lorsque ce paramètre est activé, les requêtes ne s'exécutent que si l'ensemble des données est présent dans le cache client. Si les données sont partiellement chargées, la requête échoue immédiatement et génère l'exception suivante : « Impossible d'exécuter la requête sur le cache client car le type « {queryFQN} » est partiellement chargé." Vous pouvez l'activer en cochant la case "Lancer une exception lors de l'interrogation d'un ensemble de données partiellement chargé dans le cache client, sans retour au cache clusterisé" à travers le NCache Centre de gestion.

Important

Lectures locales strictes et Application stricte des requêtes s'appliquent uniquement aux types de données de référence qui sont configurée dans le cache client de données complètes.

De plus, si un utilisateur tente d'exécuter une requête sur le cache client de données complètes alors que celui-ci est en cours de synchronisation, par exemple lors du chargement ou de la resynchronisation du cache, l'opération échouera. Dans ce cas, NCache lèvera l'exception suivante : « Impossible d'exécuter la requête sur le cache client. Le cache client est toujours en cours de synchronisation.."

Cache client : Plug & Play

L'utilisation du cache client est très simple. Aucune modification de code n'est requise côté application. Sa configuration est simple. Vous pouvez donc créer un cache client via l'outil NCache Centre de gestion ou la NCache soutenu Applets de commande PowerShellUne fois le cache client configuré, les applications clientes commenceront automatiquement à l'utiliser. Pour les applications déjà en cours d'exécution, un redémarrage est nécessaire.

D'autres instances du cache client sont mises à jour en arrière-plan synchronisation de données mécanisme, qui est expliqué plus loin.

Note

Dans le cache client Full-Data, seules les données correspondant aux types de données de référence configurés seront ajoutées au cache client et mises à la disposition de l'application.

Le cache client standard ne contient qu'un sous-ensemble des données du cache clusterisé. Par conséquent, toutes les autres opérations non basées sur des clés, comme requêtes SQL et ObtenirByTags, sont directement exécutées sur le cache clusterisé. Cependant, dans le cache client de données complètes, le cache client contient l'ensemble des types de données de référence configurés, permettant à l'utilisateur d'exécuter les opérations. question directement sur le cache client.

Cache Client

Cache client : modes d'isolement

Le cache client s'exécute sur le nœud client où vos applications sont exécutées. En fonction de vos besoins en performances et de l'architecture de votre application, vous pouvez choisir l'un des modes d'isolation au niveau des processus suivants, pris en charge par le cache client.

Mode d'isolation InProc (en cours de traitement)

Comme son nom l'indique, le cache client s'exécute au sein du processus applicatif, éliminant ainsi les communications interprocessus. Les données utilisateur sont conservées sous forme d'objets afin d'éviter les coûts de désérialisation. Ce mode optimise les performances de l'application. Hébergé au sein du processus applicatif, le cache client ne partage pas ses données avec les autres instances de l'application. Chaque instance héberge une instance dédiée du cache client. Bien que le mode InProc optimise les processus, il n'est adapté que si :

  • L'ensemble de données chaudes de l'application n'est pas trop volumineux.

  • L'application ne dispose que de quelques instances sur chaque nœud client disposant de suffisamment de mémoire physique. N'oubliez pas que chaque instance du cache client conserve sa copie des données.

  • Le cycle de vie de l'application est suffisamment long pour bénéficier des avantages du cache client. N'oubliez pas que le cycle de vie du cache client dépend du cycle de vie de l'application. En cas de panne de l'application, toutes les données du cache client sont également perdues. Les applications dont le cycle de vie est court s'arrêteront ou redémarreront avant que le cache client ne soit entièrement rempli.

Chaque application possède son propre ensemble de données à chaud, qui est différent des autres applications.

Mode d'isolation OutProc (hors processus)

Ce mode assure l'isolation du cache client au niveau du processus. Ce dernier s'exécute dans son processus dédié sur le nœud client. Les applications communiquent avec le cache client via des sockets TCP. Plusieurs instances d'application peuvent communiquer avec le même cache client, partageant ainsi des données. Bien que les performances d'InProc soient supérieures à celles du mode OutProc, ce dernier présente également des avantages.

  • Plusieurs applications exécutées sur le même poste client communiquent avec le même cache client. Elles partagent des données. Les données chargées ou mises à jour par une application deviennent accessibles aux autres.

  • Le redémarrage de l’application n’entraîne pas de perte de données du cache client.

  • Moins de ressources physiques telles que la RAM et le processeur sont nécessaires pour exécuter le cache client en mode OutProc par rapport au mode InProc lorsque chaque processus d'application conserve sa copie du cache client.

  • Synchronisation des données du cache client (expliquées dans les paragraphes suivants) avec le cache en cluster exercent moins de charge sur le cache en cluster puisque vous exécutez une seule instance du cache client par machine cliente.

Note

Si le cache client OutProc est indisponible, l'application effectue directement des opérations sur le cache clusterisé. Au redémarrage du cache client, elle se connecte automatiquement au cache client. Vous pouvez modifier ce comportement en définissant le paramètre skip-if-unavailable drapeau dans client.ncconf. Si le drapeau est défini sur false, les opérations de cache échoueront si le cache client est en panne.

Synchronisation des données avec un cache clusterisé

Étant donné que le cache client contient une copie des données du cache cluster, les modifications apportées aux données d'un cache cluster doivent y être propagées. Plusieurs caches clients exécutés en mode InProc ou OutProc peuvent exister pour un même cache cluster. Les modifications de données apportées par l'application cliente sont appliquées à l'instance du cache client à laquelle l'application est connectée. Par conséquent, cette instance du cache client est automatiquement synchronisée. Cependant, les autres instances du cache client ne sont pas informées de ces modifications. Les modifications apportées aux données du cache cluster sont synchronisées avec ces instances via un mécanisme de synchronisation des données en arrière-plan, expliqué ci-dessous pour les caches client standard et complets :

  • Si un cache client est démarré, le Cache client de données complètes effectue une première chargement processus de synchronisation avec le cache clusterisé. Il charge toutes les données associées à ses types de données de référence configurés afin de garantir que le cache est entièrement rempli et synchronisé. Dans le cas d'un Cache client régulier, il n'y a pas de chargement initial. Il est renseigné uniquement lorsque le client demande des données qui ne sont pas déjà présentes dans le cache client, ce qui entraîne leur extraction depuis le cache clusterisé.

  • Lorsque des données sont ajoutées au cache client, elles enregistrent une notification de modification de données auprès du cache clusterisé pour les données données.

  • Le cache en cluster garde une trace de chaque CacheItem qu'un cache client contient et surveille les modifications apportées aux données.

  • Lorsque les données sont mis à/enlevé à partir du cache clusterisé, le cache clusterisé enregistre ces modifications.

  • Un thread d'arrière-plan dédié inspecte les modifications de données toutes les secondes et identifie les caches clients contenant les clés concernées. Il envoie ensuite une notification à tous ces caches clients pour les informer de la modification des données.

  • Un autre thread de travail d'arrière-plan dédié, exécuté dans le cache client, est chargé de synchroniser les modifications de données avec le cache clusterisé dès réception de la notification de modification. Dès réception de la notification, il sollicite le cache clusterisé et demande les mises à jour des données. Ce mécanisme est appelé synchronisation. Interrogation du cache client.

  • Ce thread de travail interroge les données modifiées toutes les 10 secondes, s'il n'a reçu aucune notification du cache clusterisé.

  • Lorsque l'expulsion se déclenche sur l'un des types de données de référence spécifiés (en cas de cache plein) dans Cache client de données complètes, il ne restera pas synchronisé avec le cache cluster. Pour rester synchronisé avec le cache cluster, le cache client récupère les données de ce type spécifique depuis le cache cluster, après avoir atteint le seuil de rechargement des données (le pourcentage de la taille totale du cache auquel le système tente de recharger les données supprimées).

  • Si un Cache client de données complètes Lors d'un redémarrage, le cache se synchronise automatiquement avec le cache cluster pour garantir la cohérence des données. Cette synchronisation implique le rechargement des données depuis le cache cluster en fonction des types de données de référence configurés. En revanche, pour un cache client standard, aucune synchronisation automatique avec le cache cluster n'est effectuée.

  • In Cache client régulierLa synchronisation est basée sur des clés. Seules les données correspondant aux clés présentes dans le cache client sont synchronisées avec le cache clusterisé.

  • In Cache client de données complètes, la synchronisation est basée sur les données par rapport aux types de données de référence configurés.

Note

Le type de données de référence sera expulsé et resynchronisé/rechargé selon la priorité du type de données de référence.

  • Avec le cache client à données complètes, si le cache en cluster redémarre, le cache client s'effacera pour maintenir l'intégrité des données.

Ce puissant mécanisme de synchronisation garantit que les applications clientes sont toujours servies avec les données les plus récentes du cache client avec des performances et une évolutivité améliorées.

Modes de synchronisation du cache client

Outre le mécanisme de synchronisation des données en arrière-plan, le cache client prend en charge Synchronisation optimiste mode de synchronisation.

Lorsqu'une application récupère des données depuis le cache client et que celui-ci les contient, les données sont simplement renvoyées à l'application. La synchronisation s'effectue en arrière-plan, comme expliqué précédemment.

Voir aussi

Topologies de cache
Cluster dynamique
Cache local
Client cache
Pont pour la réplication multisite

Contactez-Nous

TÉLÉPHONE

+1 214-619-2601   (Etats-Unis)

+44 20 7993 8327   (RU)

 
EMAIL

sales@alachisoft.com

support@alachisoft.com

NCache
  • Comparaison Des Éditions
  • NCache Architecture
  • Repères
Télécharger
Prix
Essayez le terrain de jeu

Déploiements
  • Cloud (SaaS et logiciels)
  • On-Premises
  • Kubernetes
  • Docker
Cas d'utilisation technique
  • Sessions ASP.NET
  • Sessions ASP.NET Core
  • Messagerie Pub/Sub
  • SignalR ASP.NET en temps réel
  • Internet des Objets (IoT)
  • Base de données NoSQL
  • Traitement de flux
  • Microservices
Ressources
  • Articles de Magazines
  • Articles tiers
  • Articles
  • Vidéos
  • Livres blancs
  • Spectacles
  • Talks
  • Blog
  • Docs
Études de cas clients
  • Témoignages
  • Clients
Assistance
  • Voir la Démo du Produit
  • Forum (Google Groupes)
  • Tips
Entreprise
  • Direction
  • Associés
  • Actualités
  • Événements
  • Carrières
Contactez-Nous

  • AnglaisChinois simplifié)FrançaisAllemandItalienJaponaisCoréenPortugaisEspagnol

  • Contactez-Nous
  •  
  • Plan du site
  •  
  • Conditions d'utilisation
  •  
  • Politique de confidentialité
© Copyright Alachisoft 2002 - . Tous droits réservés. NCache est une marque déposée de Diyatech Corp.
Retour en haut de la page