linux, несколько процессов, штук 5-10, пишут в один и тот же файл который они открывают в режиме a+
(логи они туда пишут)
вопрос - будут ли они блокировать друг друга если скажем им одновременно захочется в это файл записать?
насколько этот файл их тормозит? или OS "умная" и всё правильно разруливает?
последовательность записей в принципе не так уж важна, в каждой строке есть дата-время.
можно ли каким то способом сказать OS что то типа "для этого файла не блокируй, пусть пишут себе в любой последовательности" ?
несколько процессов пишут в файл открытый как a+
Moderator: Little Muk
Re: несколько процессов пишут в файл открытый как a+
ну в одну и ту же консоль несколько процессов могут писать, не блокируя друг друга - чем файл-то хуже...
Re: несколько процессов пишут в файл открытый как a+
Они пишут же туда наверное обычно не напрямую, а через сислог? Впрочем напрямую тоже наверное можно, но, мне кажется, каша не исключена.Гость wrote:ну в одну и ту же консоль несколько процессов могут писать, не блокируя друг друга - чем файл-то хуже...
Re: несколько процессов пишут в файл открытый как a+
именно что напрямую.Ravinger wrote: Они пишут же туда наверное обычно не напрямую, а через сислог? Впрочем напрямую тоже наверное можно, но, мне кажется, каша не исключена.
open( имя_файла, a+ ) и поехали
каша не очень страшно, в каждой строке есть время и process ID
страшно что будут тормоза
Re: несколько процессов пишут в файл открытый как a+
там каша будет не из строк, а из частей строк, слова перемешаны и буквы, никто не обещает, что строчки будут целымиГость wrote:именно что напрямую.Ravinger wrote: Они пишут же туда наверное обычно не напрямую, а через сислог? Впрочем напрямую тоже наверное можно, но, мне кажется, каша не исключена.
open( имя_файла, a+ ) и поехали
каша не очень страшно, в каждой строке есть время и process ID
страшно что будут тормоза
"Форум не читается в Гугле." (Irina123)
Переубедить вас мне не удастся, поэтому сразу перейду к оскорблениям.
Переубедить вас мне не удастся, поэтому сразу перейду к оскорблениям.
Re: несколько процессов пишут в файл открытый как a+
Ага, именно это имел ввиду. Для эксперимента попробуйте просто параллельно редиректнуть в один файл несколько плотных потоков.sss wrote:там каша будет не из строк, а из частей строк, слова перемешаны и буквы, никто не обещает, что строчки будут целымиГость wrote:именно что напрямую.Ravinger wrote: Они пишут же туда наверное обычно не напрямую, а через сислог? Впрочем напрямую тоже наверное можно, но, мне кажется, каша не исключена.
open( имя_файла, a+ ) и поехали
каша не очень страшно, в каждой строке есть время и process ID
страшно что будут тормоза
Re: несколько процессов пишут в файл открытый как a+
Вот тут обещают отсутствие "каши" при определенных условиях:
"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?
"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?
Re: несколько процессов пишут в файл открытый как a+
ну собственно вот:
http://stackoverflow.com/questions/1154 ... ic-in-unix" onclick="window.open(this.href);return false;
каши не будет.
http://stackoverflow.com/questions/1154 ... ic-in-unix" onclick="window.open(this.href);return false;
каши не будет.