Я так понял, что redis cluster будет в 3 версии, а roadmap для трешки я ненашел (то что есть на github как-то не тянет на адекватный), то я пока поостерегусь об redis cluster думать
Я почитаю подробнее про шардинг у redis. Наверное я не совсем верно сформулировал свою мысль.
Скажем у меня есть объем кеша в 50 гб разбитый на 2 шарды по 25, одна шарда дохнет — соответсвенно на какой-то момент времени я теряю 25 гигов кеша. Далее решаем этот вопрос двумя слейвам, но это +2 машины за которые я плачу деньги хостеру, но при этом они не участвуют в работе напрямую. Мне легче согласиться с повышенной нагрузкой на кеш, и уборкой части кеша на диск (или в swap), при master-master, чем с включением дополнительных машин. Это на текущем этапе. В будущем эта схема имеет право на жизнь… возможно.
Существуют тесты сравнения скорости записи/чтения между mongo и redis, на которые можно опереться? Есть бестпрактис внедрения монго как кеша? (гуглить я умею, если что, просто еще не смотрел эту тему)
Шардинг не решает нашего вопроса, а скорее усложняет реализацию. У нас мало типов данных, которые мы пишем в кеш, соответсенно шардинг нам не обеспечивает гибкости решения при нагрузке.
Главное это отказоустойчивость, и условие, что писать могут в два мастера.
Тут вся проблема, что нам выгодно кеш держать вместе с фронтами, и вместе с app-серверами (ну или рядом), и те и другие туда пишут. Соответсвенно если у нас один мастер, то писать все будут в него, что возвращает нас к точке отказа и перегрузке одной машины.
Плюс не уверен, что без проблем удастся объяснить всем хостам приложения, что сменился мастер.
Так что спасибо, но увы, рассмотрели эту тему уже давно и нам не подходит.
Разработчики говорят, что размер объектов не устравивает (хотя это, возможно, и решаемо). От себя (я админ) добавлю, что нужно иметь копию кеша на диске.
Тут проблема в том, что сервис котрый реконнектится не находится в моей власти, и там уже могут сломать все девелоперы. Соответсвенно стоимость поиска ошибки увеличивается.
Проверю, должна быть идентичность.
Числа дают порядок загрузки — это понятно, а какой-то таймаут между стартами они дают?
Или же: вм1 стартовала, иницируем загрузку следующей?