2011-09-07 2 views
2

Je me demande si ce qui est décrit dans (1) est pris en charge par les fournisseurs de mise en cache de sortie qui transportons actuellement dans le Azure AppFabric SDK:Est-ce que Azure AppFabric affiche des références de support de mise en cache ou une validation par programme?

Normalement, lorsqu'une demande de get échoue, le client est responsable de charger les disparus données de stockage lent (par exemple, une base de données, le fichier serveur, ou un service distant) et le remplissage du cache. Cela triple le nombre d'allers-retours requis pour la demande et introduit la possibilité pour une condition de compétition. Avec Read-Through prise en charge activée AppFabric lance lui-même l'appel secondaire pour ralentir le stockage. AppFabric acquiert cette capacité via une implémentation personnalisée de la classe abstraite DataCacheStoreProvider.

Le « Prochaines étapes » du (3) semble suggérer que ce n'est pas:

En outre, le succès de la session Caching fournisseur d'état scénarios avec ASP.NET a donné dans les demandes de capacité à d'associer des requêtes d'écriture et de lecture au cache afin que le cache puisse devenir le principal moyen de manipuler les données, tout en laissant les requêtes associées mettre à jour le niveau de données dans le backend.

Nous allons évaluer ces fonctionnalités et d'autres pour une inclusion possible dans futures versions de Windows Azure AppFabric Caching. En attendant, nous vous encourageons à expérimenter avec l'implémentation actuelle de Caching service et à nous faire savoir comment cela fonctionne pour vous.

est-il un autre mécanisme de programmation a) invalidant et b) le remplacement d'une page en cache sans le laisser réhydrater par les demandes des clients (qui peuvent potentiellement causer naturellement des problèmes sous charge, comme toute course aux demandes de réhydrater l'élément)?

Autres différences documentées w/Windows Server (4):

ASP.NET Mise en cache

Windows Azure AppFabric fournit à la fois un fournisseur d'état de session et un fournisseur de cache de sortie . Ce fournisseur diffère de celui qui a livré avec la première version de Windows Server AppFabric. Il fournit également des fonctionnalités supplémentaires. Pour cette raison, il est important de suivre les instructions pour modifier le fichier web.config correctement pour Windows Azure AppFabric. Pour plus d'informations, consultez la section Utilisation des fournisseurs de mise en cache ASP.NET 4 pour AppFabric .

Non disponible Caractéristiques Caching

Windows Azure AppFabric prend en charge un sous-ensemble des fonctionnalités de mise en cache disponible dans Windows Server AppFabric. La liste suivante décrit certaines de ces différences.

Notifications

Notifications ne sont pas pris en charge dans Windows Azure AppFabric Caching. Cela signifie également que vous ne pouvez pas utiliser les notifications pour invalider le cache local . Dans Windows Azure AppFabric, le cache local peut utiliser uniquement une stratégie d'invalidation basée sur le délai d'expiration . Pour plus d'informations sur la fonctionnalité de notifications dans Windows Server AppFabric, voir Cache Notifications (Mise en cache de Windows Server AppFabric).

expiration et Eviction

Par défaut, les éléments dans un cache Windows Azure AppFabric n'expirent pas. Cela signifie que lorsque vous dépassez la taille maximale du cache, les éléments récemment utilisés dans le cache sont évincés. Contrairement à Windows Server AppFabric, il n'existe aucun moyen de modifier ce paramètre d'expiration par défaut ou une valeur. Toutefois, si vous ajoutez des éléments au cache avec un délai d'expiration explicite , par exemple 10 minutes, le cache respectera cette valeur d'expiration . Cela peut être fait avec diverses surcharges des méthodes Add et Put. Notez que les fournisseurs ASP.NET utilisent automatiquement ces surcharges pour fournir des délais d'expiration explicites pour l'état de session et la mise en cache de sortie .

Windows Azure AppFabric Caching ne prend pas en charge la désactivation de l'expulsion sur un cache. Sous la pression de la mémoire, il est toujours possible que des éléments puissent être expulsés. Les applications doivent être conçues pour anticiper que les éléments peuvent être manquants et nécessiter un rechargement à tout moment. Si un cache est trop petit pour les besoins de l'application, il peut être augmenté dynamiquement à partir du portail de gestion de plate-forme Windows Azure.

Pour plus d'informations sur l'expiration et l'éviction dans Windows Server AppFabric, voir Expiration et expulsion (Windows Server AppFabric Caching).

haute disponibilité

Windows Azure AppFabric Mise en cache ne prend pas en charge la fonction haute disponibilité . Pour plus d'informations sur la haute disponibilité dans Windows Server AppFabric, voir Haute disponibilité (Windows Server AppFabric Caching).

Régions et Mots

Windows Azure AppFabric Mise en cache ne prend pas en charge les régions créées par l'utilisateur ou recherches basés sur des balises.

API de soutien

Dans la plupart des cas, vous pouvez utiliser les mêmes API pour écrire des clients de cache Windows Azure utiliser AppFabric ou Windows Server AppFabric. Il y a quelques exceptions dues aux différences entre les deux solutions. Pour un examen détaillé des API disponibles pour les clients de cache Windows Azure AppFabric , voir Référence de l'API (Windows Azure AppFabric Caching).

Références:

(1) Windows Server AppFabric ajoute-lecture et écriture-behind Support: http://www.infoq.com/news/2011/08/AppFabric-CTP

(2) Mise en cache de sortie extensible avec ASP.NET 4 (VS 2010 et de la série .NET 4.0): http://weblogs.asp.net/scottgu/archive/2010/01/27/extensible-output-caching-with-asp-net-4-vs-2010-and-net-4-0-series.aspx

(3) Présentation de Windows Azure AppFabric service de Mise en cache:
http://msdn.microsoft.com/en-us/magazine/gg983488.aspx

(4) Différences entre CACHING-Locaux et dans le Cloud:
http://msdn.microsoft.com/en-us/library/gg185678.aspx

Répondre

0

Comme le document que vous faites référence indique qu'il n'y a aucun moyen d'invalider un cache local en utilisant Windows Azure service Mise en cache partagée (précédemment connu sous le nom de Windows Azure AppFabric Caching). C'est parce que ce service ne supporte pas les notifications. Si vous n'utilisez pas l'option de cache local avec ce service, vous pouvez invalider les éléments du cache en les supprimant explicitement. Cela le supprimera du cache distribué dans le service et toutes les instances le demandant n'auront rien.

En ce qui concerne le remplacement de la page mise en cache, je crois que vous pourriez le faire en mettant à jour le cache directement; Cependant, étant donné le nombre de facteurs qui interviennent lorsque quelque chose est retiré du cache, vous ne pouvez pas garantir à 100% que la page ne finira pas par tomber en raison de la pression et la course se produire de toute façon.

Si vous voulez plus de contrôle sur le cache, nous vous recommandons fortement de consulter la nouvelle version de Windows Azure Dedicated Caching. C'est en attendant, donc vous ne voudrez peut-être pas risquer votre travail de production, mais cela vous donnera beaucoup plus de contrôle sur votre cache.

Questions connexes