Какова лучшая база данных / хранилище для хранения статистических данных? - PullRequest
2 голосов
/ 18 августа 2010

У меня есть система, которая в реальном времени собирает данные журнала Apache с 90-100 веб-серверов. Я также определил некоторые шаблоны URL.

Теперь я хочу построить другую систему, которая обновляет время появления каждого шаблона на основе этих журналов.

Я думал об использовании MySQL для хранения статистических данных, обновляя их по выражению: " Обновление table set count = count + 1 где .... ",

но я боюсь, что MySQL будет медленным для данных с такого количества серверов. Кроме того, я ищу несколько решений для баз данных / хранилищ, которые были бы более масштабируемыми и простыми. (Как СУБД, MySQL поддерживает слишком много вещей, которые мне не нужны в этой ситуации). Есть ли у вас какие-либо идеи ?

Ответы [ 2 ]

1 голос
/ 18 августа 2010

Apache Cassandra - это высокопроизводительный магазин семейства столбцов, который отлично масштабируется.Кривая обучения немного крутая, но у нее не возникнет проблем с обработкой больших объемов данных.

Более простым решением будет хранилище значений ключей, например Redis .Это легче понять, чем Кассандра.Redis только поддерживает репликацию главный-подчиненный как способ масштабирования, поэтому производительность записи на главном сервере может быть узким местом. Riak имеет децентрализованную архитектуру без каких-либо центральных узлов.У него нет ни единой точки отказа, ни узких мест, поэтому его легче масштабировать.

0 голосов
/ 19 августа 2010

Хранение значения ключа является подходящим решением для моей системы.Кратко рассмотрев эти хранилища, я обеспокоен проблемой состояния гонки, так как многие клиенты будут пытаться выполнить эти действия с одним и тем же ключом:

  1. count = storage.get (key)
  2. storage.set (key, count + 1)

Я раньше работал с Tokyo Cabinet, и у них есть метод addint, который идеально подходит для моего случаяИнтересно, есть ли в других хранилищах подобная функция?Я не выбрал Tokyo Cabinet / Tyrant, потому что у меня возникли некоторые проблемы с его масштабируемостью и стабильностью данных (например, восстановление поврежденных данных, ...)

...