Здравствуйте, gandjustas, Вы писали:
G>Я стараюсь использовать научный метод — подвергать сомнению все, что не доказано. За несколько лет холиваров не нашлось ни одного человека с проектами масштаба SO. Поэтому я сомневаюсь в компетентности всех пишуших про нагрузки.
Хм, ну тогда я вполне обоснованно могу подвергнуть сомнению твое существование
G>Что такое "одновременно" ? Ключевая входящая метрика нагрузки — RPS, "того же порядка" это не число, количество фронтэндов тоже неизвестно.
G>Это и дает основание сомневаться.
Я то в курсе, но доступа к статистике прода у меня уже нет, поэтому итак как помню. RPS посчитать можно лихко из предоставленных данных и коммон сенса.
G>Приведи пример чтоли. Не понимаю как шардирование связано с говнокодом.
G>Например если из-за говнокода применяется линейный поиск по таблице\коллекции, то шардирование потребует на порядок больше денег, чем исправление говнокода. Но на scale up vs scale out не повлияет.
Вот как раз линейный поиск можно лихко ограничить одним шардом и тем самым минимизировать влияние говнокода. Безусловно, тоже самое можно сделать и с классической scale up схемой, но в ней сложнее отлавливать такие кейсы.
G>>>>>Сначала делается апдейт схемы, а потом изменяется код, который со схемой работает. Если отказаться от идеи "одного большого апдейта", то и проблем не будет.
I>>>>Ну вот, на время апдейта схемы и кода система лежит.
G>>>С чего ты взял?
I>>Ну вот расскажи(или кинь линку), как сделать по другому.
G>Не пойму что сделать по-другому? Что ты делаешь из-за чего у тебя система останавливается?
Ок, давай возьмем пример.
Допустим версия 1 софтины работает с БД, в которой есть табличка Orders с колонкой Comments. В версии 2 той же софтины появляется табличка Comments, связанная N:1 c табличкой Orders. Также в табличке Comments есть поле интовое Kind, которое характеризует тип комментария: жалоба, похвала и тд. Также надо построить полнотекстовый индекс по каменту, ключам и Kind-у.
Необходимо проапдейтать БД и смигрировать данные в новую таблицу. Каждый имеющейся камент необходимо проверить полдесятком регэкспов и в зависимости от результата выставить коле Kind.
В таблице — десятки лямов записей и вся процедура занимает около часа.
Твой solution?