2011-07-01 8 views
1

Je voudrais garder un ensemble de compteurs dans les données de tolérance aux pannes magasin avec les propriétés suivantes:compteurs à tolérance de pannes

  • peut lui communiquer de Erlang
  • production
  • prêt
  • tolérant aux pannes de la boîte (multi-serveur et pas roulées-propre manigances maître-esclave)
  • le nombre de compteurs est dynamique (disons de 1k à 100k)

Je suis prêt à échanger C contre AP. Vous pouvez supposer que les compteurs ne font qu'augmenter. Ce que j'ai déjà envisagé:

Riak

je suppose que l'on pourrait essayer d'allumer allow_mult, et l'agrégation frères et sœurs au moment de la lecture. Cela fonctionne probablement très bien pour les décors, mais je ne sais pas si cela fonctionne pour les compteurs.

riak_zab

Au moment d'écrire ces lignes, il n'est pas prêt pour la production.

Répondre

2

Il y a un code de compteurs dans statebox dans une branche que j'ai Prototypage: https://github.com/mochi/statebox/tree/counters

Ceci peut être utilisé en combinaison avec Riak assez facilement.

Cela devrait fonctionner, mais je n'ai pas encore écrit d'application avec ce logiciel, donc ce n'est pas encore le cas. Ne correspond pas à votre objectif de production, mais rien ne le fera (sauf peut-être Mnesia, mais il y a d'autres problèmes avec ça).

+0

Fantastique. J'ai commencé à regarder statebox récemment mais je n'ai pas remarqué la branche des compteurs.Heureusement, je n'ai pas besoin de ça demain, alors j'attendrai juste qu'il soit promu maître. Merci d'avoir créé ce projet - ça a l'air vraiment utile. –

+0

Juste à noter ici, la branche des compteurs a finalement atterri sur le maître. Nous ne l'utilisons pas en production pour le moment, mais il y a une couverture de test de 100% et quelques docs. –

0

Utilisez ZooKeeper. Vous aurez besoin d'un port pour exécuter le client zk c en erlang, mais il répond au reste de vos besoins. Une solution simple consiste à utiliser des nœuds séquentiels dans zk, mais il existe d'autres moyens possibles.

+0

Ne comprenez pas la raison de la downvote, mais si quelqu'un pouvait clarifier, je serais heureux de modifier la réponse. – manku

+0

Je ne suis pas sûr non plus. Ma compréhension limitée de zookeeper est que c'est CP mais pas A en raison de la stricte commande. Cela rend idéal pour la gestion de l'état qui ne change pas souvent mais potentiellement terrible pour les compteurs. –

+0

Pourriez-vous développer le type d'utilisation de compteurs que vous avez? Zookeeper fournit A - il répondra avec succès ou refusera de répondre. Il fonctionne dans un modèle d'ensemble et tant que n/2 + 1 nœuds sont en hausse, l'ensemble continuera à fonctionner. – manku

Questions connexes