Как работает LOCK для записи логов в плоский файл?

Параллельное чтение плоских файлов почти не ограничено (поправьте меня, если я ошибаюсь); но как параллелизм для записи? Рассмотрим простую запись журнала доступа (для посещений) на PHP, чтобы добавить строку сведений о доступе, заканчивающуюся \n

fopen(); // in append mode
fwrite();
fclose();

Поскольку у нас есть одновременные посетители, как система (один пользователь, который является пользователем wbserver/php) писать журналы просмотра одновременно?

Меня смущает следующее: функция file_put_contents()(которая является оболочкой трех вышеуказанных функций) имеет возможность блокировки ( LOCK_EX)? Выгодно ли использовать этот вариант блокировки? Как это повлияет на запись лога?

ОБНОВЛЕНИЕ: Мой вопрос о том, как LOCKизначально работает/влияет на запись журнала в файл. Я не сравниваю file_put_contentsи fwrite; даже мой вопрос не ограничивается PHP. Вопрос о блокировке файла во время записи.

5
задан Googlebot 29 May 2012 в 03:11
поделиться