2010-05-20 6 views
2

J'essaie de trouver de bonnes ressources sur les meilleures pratiques pour la réplication des données sur les serveurs memcache. Ce que je veux accomplir est que si l'un de mes serveurs tombe en panne, le prochain serveur en ligne a déjà l'ensemble d'information.Comment répliquer des données avec memcache

J'ai trouvé "repcached" mais comme j'ai exécuté un environnement de test WIN32, je n'ai pas réussi à l'installer.

Alors, quelles sont nos alternatives sur la façon de répliquer des données entre serveurs?

Merci,

Répondre

1

Je ne l'ai jamais pris la peine avec moi-même (memcache est simplement censé être un cache après tout, même si chaque cas était une copie exacte de tous les autres cas, vous ne pouvez toujours pas garantir que une valeur existera toujours une fois que vous l'aurez ajoutée: elle pourrait être expulsée en raison de la politique LRU, par exemple).

Cependant, si je était pour implémenter cela comme une fonctionnalité, je le mettrais dans le client et non pas comme un correctif pour le serveur. C'est-à-dire, au lieu de hacher une clé pour un seul serveur, la hacher à 2 ou 3 serveurs et stocker la valeur sur chacun d'eux. Ensuite, lorsque vous récupérez la valeur, essayez de l'obtenir à partir du premier, si ce n'est pas le cas, essayez le second et ainsi de suite.

Ceci a l'avantage supplémentaire de ne pas répliquer chaque valeur: vous pouvez répliquer uniquement ceux que vous choisissez.

+0

Hmmm tu veux dire utiliser quelque chose comme flexihash? http://github.com/pda/flexihash – Industrial

+1

Le hachage cohérent est légèrement différent. Avec un hachage cohérent, si un serveur est supprimé (ou ajouté) au pool, le hachage est défini de manière à ce que toutes les autres clés hachent toujours le même serveur: vous invalidez uniquement la partie du cache qui a été conservée dans le serveur maintenant supprimé. Sans un hachage cohérent, si vous supprimiez un serveur, les clés * all * seraient invalidées. –

+0

Merci pour votre aide, Codeka. C'était vraiment précieux et nous a mis dans la bonne direction! – Industrial