Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Нужна ли блокировка? 16.09.04 01:03
Автор: Heller <Heller> Статус: Elderman
|
Вопрос более филосовский чем практический - у меня на сайте размещаются статьи и к ним все подряд пишут комментарии. Статья с комментариями к ней располагается в одном файле. За сутки каждую статью просматривают около 10 000 раз, камментируют примерно 10-40 раз (такая разница, потому что сами комментарии так же представляют интерес). Сайт лежит на виртуальном сервере.
Нужна ли в этом случае блокировка файлов (в Perl это flock) при чтении статей/публикации комментариев? Просто, т. к. сервер виртуальный, загружать его как-то не хотелось бы лишний раз - а то меня хостинг и так материт, однако боюсь одновременного доступа нескольких пользователей на чтение/запись. Хотелось бы услышать Ваше мнение.
Загрузка процессора сервера достигает 60%, основной приток посетителей сайта приходится на 10:00 - 14:00 МСК.
Второй интересующий момент - выбор режима доступа - разделяемый или монопольный. Разделяемый, конечно, предпочтительней, однако, у меня под NT, помнится, были с ним проблемы. На сервере же стоит Linux Red Hat, про который я мало знаю - нормально ли он работает с LOCK_SH или нет.
Заранее благодарен.
|
|
Рассмотрю очень маловероятный случай "столкновения... 26.10.04 00:43
Автор: Sashman Статус: Незарегистрированный пользователь
|
Рассмотрю очень маловероятный случай "столкновения интересов" двух скриптов (т.е. крайний случай, когда запросы двух разных пользователей пришли "почти" одновременно и файл заблокирован скриптом, выполняющий первый запрос)
Монопольный лок - если скрипт записывает коммент от одного пользователья и от другого юзера приходит запрос на прочтение/ответ, то он будет ждать (миллисекунды, но в условиях высокой посещаимости - это лишние циклы процессора).
Разделяемый - нет простоя для "только чтения", зато есть шанс прочитать "нецелый файл" (если коммент записался еще неполностью), в случае же столкновения двух "пишущих" скриптов второй скрипт будет ждать освобождения файла.
Логично будет лочить файл в разделяемом режиме для чтения, и в монопольном для записи комментов.
Мой совет - пользуйся БД хотя бы для хранения ответов, т.к. задолбаешся с блокировками.
|
|
|