2012-04-28 7 views
2

J'ai des difficultés à déterminer si la mise en cache d'APPFabric ou SQL Server doit être utilisée dans le contexte de nos besoins (compte tenu du fait que nous utilisons actuellement le serveur SQL pour la plupart des choses).Caching APPFabric ou serveur SQL - Scénario spécifique

Nous avons seulement besoin (pour l'instant) de mettre en mémoire cache de petits blocs de données (~ 16Ko) chacun correspondant aux informations associées à une demande particulière envoyée par l'un des serveurs applicatifs (requête sortante). N'importe quel serveur applicatif peut recevoir une requête entrante associée à la demande sortante initiale, et pour nos besoins nous devons retrouver les informations originales associées à cette requête sortante ... c'est pourquoi nous ne pouvons pas garder un local dans cache mémoire dans chaque serveur applicatif, car nous ne pouvons pas être sûrs que la requête entrante arrivera sur le serveur applicatif à partir duquel la requête sortante a été envoyée. CEPENDANT, nous avons simplement besoin de ne conserver qu'une seule fois l'information ~ 16kb (très rares possibilités de mises à jour), et de pouvoir y accéder à partir de n'importe quel serveur applicatif, mais d'y accéder une seule fois dans le vaste majorité des cas. Donc, la plupart du temps, il s'agira d'une écriture à partir d'un serveur applicatif (mise en cache) et plus tard, d'une lecture à partir d'un même serveur ou d'un autre serveur applicatif.

Dans ce contexte spécifique, y aura-t-il un avantage à passer par un cluster de cache AppFabric au lieu d'aller directement à la base de données (étant donné qu'il s'agira d'une simple instruction insert/select)? En gardant à l'esprit l'évolutivité, ce qui signifie que nous n'avons actuellement pas un débit élevé d'opérations put_data/get_data (~ 160ops/sec) mais nous pouvons atteindre 1K/s .. 10k/s et peut-être plus dans un proche avenir.

Merci d'avance pour vos réponses.

Répondre

1

Le gain de AppFabric Cache par rapport à la base de données SQL serait le temps d'accès. Vous aurez un temps d'accès plus rapide pour AppFabric car il stocke tout en mémoire (RAM) alors que SQL doit interroger ses données à partir du disque. L'inconvénient du Cache AppFabric est que vous pouvez perdre les données sauf si vous avez implémenté HA (haute disponibilité) dans votre cluster pour éviter la perte de données en cas de défaillance des systèmes. La base de données SQL gagne ici car elle prend en charge la capacité de récupération des données (via les journaux de sauvegarde - LDF) en cas de défaillance du système de base de données. Si vous avez besoin d'une distribution garantie des messages, vous ne devriez probablement pas utiliser le cluster AppFabric Cache, mais une base de données SQL pour la persistance temporaire en raison de sa prise en charge robuste de la récupération de données.

Questions connexes