Параллельное чтение плоских файлов почти не ограничено (поправьте меня, если я ошибаюсь); но как параллелизм для записи? Рассмотрим простую запись журнала доступа (для посещений) на PHP, чтобы добавить строку сведений о доступе, заканчивающуюся \n
fopen(); // in append mode
fwrite();
fclose();
Поскольку у нас есть одновременные посетители, как система (один пользователь, который является пользователем wbserver/php) писать журналы просмотра одновременно?
Меня смущает следующее: функция file_put_contents()
(которая является оболочкой трех вышеуказанных функций) имеет возможность блокировки ( LOCK_EX
)? Выгодно ли использовать этот вариант блокировки? Как это повлияет на запись лога?
ОБНОВЛЕНИЕ: Мой вопрос о том, как LOCK
изначально работает/влияет на запись журнала в файл. Я не сравниваю file_put_contents
и fwrite
; даже мой вопрос не ограничивается PHP
. Вопрос о блокировке файла во время записи.