(картинка с одного из последних кластеров со старым хэшом)
Когда store серверов становится много, встает вопрос о том как этим управлять
И в большинстве случаев люди приходят к использованию какого-нибудь consistent hash'а
В carbon-relay есть свой, но нас он быстро перестал устраивать
Собственно возвращаясь на минутку - хэш нужен чтобы отправлять метрики только на какой-то определенный store
а свойство консистентности гарантирует то, что добивив новый сервер ты не получишь полного перераспределения метрик. Только часть со старых серверов смигрирует на новый.
Но как и у любого хэша, встает вопрос того насколько хороша сама функция
Мы реализовали одну из более равномерных, но там тоже возникли те же проблемы
Собственно на картинке выше - разница между самым загруженным и свободным серверов составляет несколько тысяч метрик в секунду.
И буквально тремя строчками кода сделали распределение практически идеально совпадающим
Даже более того - начали использовать графит под мониторинг