我想在具有以下属性的容错数据存储中保留一组计数器:
- 可以从 erlang 与它通信
- 生产就绪
- 开箱即用的容错(多服务器,没有滚动你自己的主从恶作剧)
- 计数器的数量是动态的(比如说从 1k 到 100k)
我愿意用 C 换 AP。您可以假设计数器只会增加。我已经考虑过的事情:
里亚克
我假设可以尝试打开allow_mult,并在读取时聚合兄弟姐妹。这可能适用于套装,但我不确定它是否适用于柜台。
riak_zab
在撰写本文时,它还没有准备好生产。
我一直在制作原型的分支中的 statebox 中有一些计数器代码: https ://github.com/mochi/statebox/tree/counters
这可以很容易地与 Riak 结合使用。
它应该可以工作,但我还没有用它编写应用程序,所以它还没有在 master 上。不符合您的生产就绪目标,但什么都不会(可能除了 Mnesia,但还有其他问题)。
使用动物园管理员。您将使用端口在 erlang 中运行 zk c 客户端,但它满足您的其余要求。一个简单的解决方案是在 zk 中使用顺序节点,但也有其他可能的方法。