flush()
занимает так много времени, именно потому, что устанавливает гарантию, которую вы ищете.Файлы обычно записываются на диск, на котором (вероятно) крутятся ржавые диски.Файлы физически разбросаны по поверхности этих дисков, и для перемещения головки чтения / записи в нужное место требуются миллисекунды.50 сбросов в секунду означает в среднем 20 миллисекунд на сброс, что близко к тому, что может сделать ваш диск механически.
Без сброса ваши записи объединяются, поэтому для нескольких записей потребуется только одно движение головки чтения / записи.Даже без проверки конкретных флагов это обязательно должно означать, что данные временно находятся под угрозой.
Только в программном обеспечении вы можете никогда знать, действительно ли данные записаны на диск.Мы знаем это благодаря исследованиям, проведенным Sun при разработке файловой системы ZFS.Оказывается, что более дешевые и медленные диски связаны с очисткой и возвращаются до того, как данные действительно будут очищены.Для этого вам понадобятся диски серверного уровня.
SSD работают достаточно хорошо в этой области.Им не нужно физически двигать пишущие головки.Поэтому у них меньше стимулов лгать о приливах.