У меня есть приложение, которое выполняет много файловых операций. Оно выполняет много операций чтения и записи файлов (много маленьких файлов). Мы обнаружили, что некоторые файлы случайным образом перемешиваются. Вывод file1 идет в file2 и так далее. Код, который мы проверили, не вызывает проблем с параллелизмом. Он работает на всех других платформах, кроме AIX.
В Solaris мы столкнулись с этой проблемой, но после включения directio эта проблема решена.
В AIX мы пытались включить диод, но проблема не исчезла.
Спасибо Никеш П.Л.
Что ж, работает не на всех платформах. Это не работает в Solaris, пока вы не включите прямой ввод-вывод. Прямой ввод-вывод вызывает синхронную запись и отключает опережающее чтение, поэтому вы меняете время ввода-вывода, возможно, маскируя основную причину.
Вы можете попробовать отладить свое приложение, что может оказаться трудным и трудоемким, или вы можете просто наклеить пластырь и включить прямой ввод-вывод в AIX слишком.