2010-08-27 2 views
2

.NET je besoin d'un moyen de stocker des numéros de données XML de différentes tailles dans un magasin simple clé/valeur. Jusqu'à présent, je l'ai essayé deux approches simples:magasin de valeur clé la plus simple pour les données XML avec les meilleures performances pour

  1. RAM: tout magasin dans une instance ConcurrentDictionary
    • Problème: ressources limitées au lancement du projet, un seul serveur avec 8GBs de RAM!
    • Remarque: Windows AppFabric pourrait être une solution ici à l'avenir si nous obtenons des serveurs plus capables.
  2. HDD: sauvons chaque valeur dans son propre fichier sur le disque dur, avec la cartographie des clés de chemins
    • Problème: temps d'attente
    • Question: combien d'une différence pourrait en utilisant un SSD faire dans le scénario le plus optimiste ici?

Y at-il une solution de base de données prête à l'emploi qui pourrait fournir au milieu à sens unique, offrant très rapidement les temps accès en lecture tout en utilisant le disque dur?

accès en écriture est seulement nécessaire pour l'entretien de sorte que toute solution qui se spécialise dans moins de latence pour la lecture seule des scénarios qui fonctionnerait le mieux. Le serveur de données devrait être communicable en utilisant WCF.

Répondre

2

Vous voudrez peut-être regarder memcached si vous êtes en .Net. Il vous permet de commencer avec dans le cache mémoire et de passer au stockage redondant si nécessaire. Tout dépend de vos besoins en données et de la fréquence à laquelle vous lisez et écrivez le magasin. Comme pour une base de données, MSSQL fournit un stockage de type XML, donc vous pouvez certainement créer une simple table avec XML à l'intérieur, mais ce n'est pas bon marché et vous avez mentionné que vous vouliez une implémentation NoSQL. Notez que si vous avez besoin de rechercher ou de trier votre fichier XML, XPath et l'indexation peuvent être un bonus ...

0

GetCache.net est un magasin clé/valeur distribuée qui fonctionne uniquement en mémoire. Il est évolutif et prend en charge la réplication des données et l'expiration des données. La bibliothèque client est basée sur WCF. Il est disponible à partir de Nuget.

Questions connexes