La gestion des données avec efficacité et cohérence est devenue l'un des plus grands défis de l'ère moderne. Les applications Web traitant constamment des données transactionnelles élevées manquent de performances et d'évolutivité. Heureusement, vous pouvez introduire la mise en cache pour gérer de telles situations, en évitant les coûts importants liés aux déplacements fréquents du réseau.
Cependant, lors de l'utilisation d'un cache, l'application doit gérer deux sources de données, ce qui peut compliquer le code de l'application et entraîner des retards de performances supplémentaires. Comme dans le cas d'un manque de cache, un voyage réseau vers la base de données deviendra nécessaire pour obtenir les données requises et les remplir dans le cache. Pour simplifier le code applicatif et réduire la latence liée aux déplacements réseau, NCache fournit un fournisseur de source de données personnalisé appelé Read-Through. Ce fournisseur interagit avec la base de données au nom de votre application pour extraire les données requises de la source de données et remplir le cache en une seule opération pour une utilisation présente et future.
Qu'est-ce que la lecture continue ?
Read-Through est un fournisseur de source de données personnalisé, grâce auquel vous indiquez au cache comment et quand il doit obtenir des données de la base de données. La lecture directe interagit avec votre source de données au nom de votre application et lui évitera de faire des allers-retours dans la base de données d'exécution, améliorant ainsi les performances de l'application.
Utilisation de la lecture directe avec NCache
Dans Read-Through Caching, lorsqu'il y a un manque de cache, NCache appellera votre fournisseur pour charger des données sur l'appel d'obtention. Dans les caches en cluster, où plusieurs serveurs sont impliqués, le fournisseur ReadThrough s'activera (s'initialisera) sur tous les nœuds du serveur de cache. Cependant, les opérations de lecture directe seront effectuées en fonction de la topologie utilisée.
Avec ReadThrough, NCache offre également la possibilité de lecture forcée. Lorsque la lecture forcée est activée, votre fournisseur ignorera les données dans le cache et récupérera de force les données de la source de données. Par conséquent, les données ne seront pas vérifiées dans le cache et seront récupérées directement à partir de la source de données.
NCache fournit plusieurs façons de garder votre cache à jour et expiration des données est l'un d'eux. Mais l'expiration seule peut entraîner des retards de performances, et c'est là que Lire à travers entre. Par exemple, dans un magasin de commerce électronique, des centaines de produits sont mis en cache, certains d'entre eux sont consultés fréquemment - le reste des éléments mis en cache ne fera que rester là et consommer de la mémoire cache.
En utilisant l'expiration, vous pouvez invalider l'élément après une durée spécifiée ou la fréquence à laquelle il a été accédé. Cependant, il peut y avoir une possibilité qu'un élément ait finalement expiré, mais l'application demande cet élément même. Dans ce cas, l'application doit récupérer l'élément dans la base de données, puis l'ajouter au cache. Ce voyage de la base de données d'exécution peut entraîner certains retards, nuisant ainsi aux performances de l'application.
Pour éviter ce décalage de performances, Read-Through avec le Options de resynchronisation La propriété récupèrera automatiquement chaque élément configuré avec l'indicateur de resynchronisation, au moment où il expirera du cache. Cela gardera toujours le cache à jour, réduira les échecs de cache et évitera les déclenchements de la base de données d'exécution.
De même, les dépendances peuvent également être un excellent moyen de maintenir la cohérence des données dans le cache. Surtout dans les scénarios où l'utilisateur souhaite conserver les données synchronisées avec la base de données afin qu'à chaque mise à jour des données correspondantes dans la base de données, le cache soit informé et invalide automatiquement les données respectives. De cette façon, les données dans le cache restent fraîches et toutes les opérations utilisent l'ensemble de données mis à jour.
Importance de la lecture directe
Les circonstances suivantes en particulier devraient vous encourager à utiliser les fournisseurs de source de données Read-Through :
Code d'application simplifié
Read-Through implémente du code applicatif avec le principe de « séparation des préoccupations », pour parvenir à cette simplification. Après le déploiement de la lecture directe, toutes les communications avec la base de données s'effectuent via la couche d'accès aux données. Il est maintenant de la responsabilité du cache de fournir les données requises et de synchroniser le cache avec la base de données.
Évolutivité en lecture améliorée
Cette fonctionnalité avec la propriété ResyncOptions améliore également l'évolutivité de la lecture en gardant toujours l'élément de cache disponible et mis à jour. Il peut y avoir de nombreuses situations où un l'élément de cache expire et la base de données fait face à d'innombrables requêtes de threads d'utilisateurs.
Cette situation, associée aux millions d'éléments mis en cache et aux milliers de demandes d'utilisateurs parallèles, entraîne une charge sensiblement plus élevée sur la base de données. Heureusement, Read-Through avec ResyncOptions conserve l'élément de cache dans le cache pendant qu'il en extrait la dernière copie de la base de données, il met ensuite à jour l'élément de cache, évitant ainsi à l'application d'accéder à la base de données pour ces éléments de cache, en gardant la charge de la base de données au minimum.
Haute disponibilité des données et cohérence dans le cache
La lecture directe garantit une disponibilité et une cohérence élevées des données dans le cache en actualisant automatiquement le cache. NCache Le fournisseur de lecture directe spécifié avec ResyncOptions recharge l'objet immédiatement après son expiration ou toute autre modification des données correspondantes dans la base de données. Cela empêche les données de cache de devenir obsolètes.
Façons d'optimiser les performances à l'aide de la lecture directe
Non seulement la lecture continue maintient la cohérence de votre cache, mais elle améliore également les performances de votre application en vous permettant d'obtenir éléments de cache en masse, ce qui permet d'économiser des appels de base de données coûteux et des déplacements sur le réseau.
De plus, Read-Through peut être une excellente alternative au cache de côté. En dehors du cache, l'application récupère les données de la source de données et met à jour le cache, ce qui augmente la responsabilité de l'application, complique le code de l'application et nuit aux performances de l'application.
Conclusion
NCacheLe fournisseur de source de données Read-Through de améliore les performances de votre application et garantit une haute disponibilité des données. La lecture directe simplifie également le code de votre application en éliminant les morceaux de code pour communiquer avec la source de données et interagit avec la base de données au nom de votre application. Donc, si vous voulez des données de cache à feuilles persistantes, n'hésitez pas à obtenir NCache60 jours d'essai gratuit.