vitus: comment 17

vitus
Mon, 21 Jan 2013 22:22:17 +0400

Сколько там пользователей у wikipedia?

Википедия - не в счет. Мы делаем движок для сайтов, где конфликты между авторами либо вообще не возникают (потому что править чужой текст нельзя), либо разрешаютя административным путём. 90% корпоративных wiki вполне этим ограничениям удовлетворяют.

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

Стремиться надо к тому, чтобы каждая операция редактирования изменяла ровно один первичный объект и ровно один файл в ФС. В нынешнем ТЗ есть ровно одно исключение — это разбитый на страницы список элементов с блоковым типом хранения, Там возможна ситуация, когда волна изменений покатится по всем страницам данного списка.

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

Потому что SSI обрабатывает HTML как поток байт. В эпоху utf-8 это недопустимо. И вообще, я категорически против любых инструментов, которые работают с html не как с DOM-деревом, и, следовательно, могут породить невалидный HTML. А средства, которые работают с DOM-деревом — медленные. А значит использовать какие бы то ни было преобразования html в момент отдачи недопустимо.

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

Вообще именно за это мне всегда хотелось поубивать нынешнюю команду ЖЖ. За то что у них происходит постинг коммента без перезагрузки страницы, а счетчик - не обновляется. Если ты не можешь гарантировать консистентность обновления счетчика, вообще не показывай счетчик.

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

Для крупных ресурсов она не настолько выгодна. Там скачки посещаемости более плавные, там есть деньги на нормального DBA и так далее. Поэтому можно не особенно зарекаться на масштабирование вверх. Так сразу и написать "если вы ожидаете более 2 комментариев в секунду, поищите другое решение". Я как раз хочу сделать решение для маленьких сайтов, где комментарий в две минуты это жуткий пик посещаемости. Потому что сейчас эти ресурсы невыгодно размещать на отдельных серверах. Они мрут как тольк ссылку запостят даже на слэшдот или ленту.вру, а даже в ЖЖ тысячника. Притом что из ста посетителей, пришедших по этой ссылке, хорошо если один соберется что-то откомментировать.