mithraen [livejournal.com]: comment 12

mithraen [livejournal.com]
Mon, 21 Jan 2013 18:45:45 +0400

1. Сколько там пользователей у wikipedia? Какие там классные войны откатывания изменений и т.д. И ведут эти войны отнюдь не программисты -- так что пользоваться простейшим revision control юзвери умеют, если знают зачем им это надо.

Плюс тот же wordpress это блог + странички. И если для блога полноценный revision control нафиг не нужен (разве что история последних пары изменений, на всякий случай), то вот для pages -- нужен.

2. Тут самое смешное в том, что подобная архитектура, когда все статическое и генерируется, даже более выгодна для крупных ресурсов чем мелких блогов. А там в сутки может быть и больше тысячи комментов. Плюс, эти тысяча комментов не так уж и размазаны по времени -- есть четкие пики (при попадании ссылки на главную страницу крупного сайта, например).

Причем тут вот какая штука -- если человек отправил коммент, то он должен в течении максимум 1с получить на экране страничку, где его коммент уже есть. А вот если обновление счетчика комментов задержится даже на 10с -- всем пофиг. Если нагрузка небольшая -- это произойдет мгновенно, если большая -- значит вероятнее всего этих комментов не 1, и будет там 100500 или 100501 никто не заметит.

3. Так как часть контента все равно генерится, то в любом случае есть как парсер отдаваемого юзеру html, так и генератор. Так что перенос даже не надо особым образом организовывать -- любой вариант должен уметь сгенерировать html для пользователя. А значит его можно разобрать и импортировать.

Достаточно всего лишь не требовать использовать html как основной формат хранения, а изначально предполагать что это один из возможных форматов хранения.

4. Кстати, а почему бы не использовать для таких псевдодинамичных вещей, когда некий кусок дублируется в множество мест старый добрый ssi? Ну да, ssi это медленнее чем просто отдать с диска, но все же несравнимо быстрее чем скрипты.

И тогда какое-нибудь облако тэгов и прочие widget'ы могут спокойно лежать где-то отдельно, и вставляться сразу во все странички. На ресурсе с небольшой посещаемостью но большим объемом контента это будет даже выгоднее по ресурсам, чем перегенерировать весь сайт по каждому чиху.

Кстати, про те же счетчики, вполне может быть widget типа 'топ комментируемые посты', и тогда придется однозначно лочить весь сайт по каждому комменту.

5. Собственно главная мысль, которую я хочу донести -- у есть объекты FS содержащие первичный контент, и и есть объекты FS которые содержат только генерат. При каждом выполнении операции обновления единицы контента -- сколько будет модифицировано файлов с генератом, это вопрос производительности. А то, сколько будет модифицировано файлов с первичным контентом -- еще и вопрос надежности. Поэтому мне очень хочется выяснить есть ли вариант, который удовлетворяет вашим требованиям по производительности и удобству миграции (включая backup wget'ом), но при этом который не будет иметь очевидных граблей при масштабируемости. Особенно с учетом того, что во всем остальном предлагаемый вами вариант выглядит легко масштабируемым даже до масштабов ЖЖ.