несколько процессов пишут в файл открытый как a+

Moderator: Little Muk

Post Reply
Guest

несколько процессов пишут в файл открытый как a+

Post by Guest »

linux, несколько процессов, штук 5-10, пишут в один и тот же файл который они открывают в режиме a+
(логи они туда пишут)

вопрос - будут ли они блокировать друг друга если скажем им одновременно захочется в это файл записать?
насколько этот файл их тормозит? или OS "умная" и всё правильно разруливает?
последовательность записей в принципе не так уж важна, в каждой строке есть дата-время.

можно ли каким то способом сказать OS что то типа "для этого файла не блокируй, пусть пишут себе в любой последовательности" ?
Guest

Re: несколько процессов пишут в файл открытый как a+

Post by Guest »

ну в одну и ту же консоль несколько процессов могут писать, не блокируя друг друга - чем файл-то хуже... 8-)
Ravinger
Posts: 4591
Joined: 24 Oct 2011, 16:02

Re: несколько процессов пишут в файл открытый как a+

Post by Ravinger »

Гость wrote:ну в одну и ту же консоль несколько процессов могут писать, не блокируя друг друга - чем файл-то хуже... 8-)
Они пишут же туда наверное обычно не напрямую, а через сислог? :) Впрочем напрямую тоже наверное можно, но, мне кажется, каша не исключена.
Guest

Re: несколько процессов пишут в файл открытый как a+

Post by Guest »

Ravinger wrote: Они пишут же туда наверное обычно не напрямую, а через сислог? :) Впрочем напрямую тоже наверное можно, но, мне кажется, каша не исключена.
именно что напрямую.
open( имя_файла, a+ ) и поехали
каша не очень страшно, в каждой строке есть время и process ID
страшно что будут тормоза
User avatar
sss
Posts: 2120
Joined: 22 Sep 2011, 09:02
ник с it-ru.de: верифицирован

Re: несколько процессов пишут в файл открытый как a+

Post by sss »

Гость wrote:
Ravinger wrote: Они пишут же туда наверное обычно не напрямую, а через сислог? :) Впрочем напрямую тоже наверное можно, но, мне кажется, каша не исключена.
именно что напрямую.
open( имя_файла, a+ ) и поехали
каша не очень страшно, в каждой строке есть время и process ID
страшно что будут тормоза
там каша будет не из строк, а из частей строк, слова перемешаны и буквы, никто не обещает, что строчки будут целыми
"Форум не читается в Гугле." (Irina123)
Переубедить вас мне не удастся, поэтому сразу перейду к оскорблениям.
Ravinger
Posts: 4591
Joined: 24 Oct 2011, 16:02

Re: несколько процессов пишут в файл открытый как a+

Post by Ravinger »

sss wrote:
Гость wrote:
Ravinger wrote: Они пишут же туда наверное обычно не напрямую, а через сислог? :) Впрочем напрямую тоже наверное можно, но, мне кажется, каша не исключена.
именно что напрямую.
open( имя_файла, a+ ) и поехали
каша не очень страшно, в каждой строке есть время и process ID
страшно что будут тормоза
там каша будет не из строк, а из частей строк, слова перемешаны и буквы, никто не обещает, что строчки будут целыми
Ага, именно это имел ввиду. :) Для эксперимента попробуйте просто параллельно редиректнуть в один файл несколько плотных потоков.
Guest

Re: несколько процессов пишут в файл открытый как a+

Post by Guest »

Вот тут обещают отсутствие "каши" при определенных условиях:

"When appending to files from multiple threads or processes, the fwrites to that file are atomic under the condition that the file was opened in appending mode, the string written to it does not exceed the filesystem blocksize and the filesystem is local. "
http://stackoverflow.com/questions/2710 ... ingle-file" onclick="window.open(this.href);return false;

но откуда они это взяли? где это гарантируется? fwrite?
Guest

Re: несколько процессов пишут в файл открытый как a+

Post by Guest »

ну собственно вот:
http://stackoverflow.com/questions/1154 ... ic-in-unix" onclick="window.open(this.href);return false;

каши не будет.
Post Reply