отказоустойчивые счетчики - PullRequest
1 голос
/ 01 июля 2011

Я хотел бы хранить набор счетчиков в отказоустойчивом хранилище данных со следующими свойствами:

  • может связываться с ним из erlang
  • готов к производству
  • отказоустойчивый из коробки (многосерверный и без чередования собственных и подчиненных)
  • количество счетчиков является динамическим (скажем, от 1k до 100k)

Я готов обменять C на AP.Вы можете предположить, что счетчики только увеличиваются.Вещи, которые я уже рассмотрел:

riak

Я предполагаю, что можно попробовать включить allow_mult и объединить братьев и сестер во время чтения.Это, вероятно, отлично работает для наборов, но я не уверен, что это работает для счетчиков.

riak_zab

На момент написания статьи он еще не готов к работе.

Ответы [ 2 ]

2 голосов
/ 02 июля 2011

Есть код счетчиков в Statebox в ветке, которую я создавал: https://github.com/mochi/statebox/tree/counters

Это можно легко использовать в сочетании с Риаком.

Это должно работать, но я еще не написал приложение, поэтому оно еще не готово. Не соответствует вашей цели производства, но ничего не подойдет (за исключением, возможно, Mnesia, но есть и другие проблемы с этим).

0 голосов
/ 01 июля 2011

Используйте ZooKeeper .Вам нужно будет использовать порт для запуска клиента zk c в erlang, но он удовлетворяет остальным вашим требованиям.Простое решение - использовать последовательные узлы в zk, но есть и другие возможные пути.

...