гарантии, что данные реально запишутся на диск?
Вот тут пишут https://habr.com/ru/company/postgrespro/blog/458186/#comment_20363252 что wal не использует direct I/O при записи.
Т.е. данные попадут в кэш ОС и не понятно когда реально будут записаны на диск.
А тут в более старой презентации пишут, что умеет direct I/O https://pgday.ru/presentation/190/5964902ee6d65.pdf
Вопрос в том использует ли postgres direct I/O для wal и если использует дает ли это гарантии что данные реально запишутся ведь там еще есть магия в I/O scheduler.
> Т.е. данные попадут в кэш ОС и не понятно когда реально будут записаны на диск. Direct I/O — не единственный способ обеспечить реальную запись данных на диск в POSIX-conformant OS (да и не только в них). PostgreSQL, например, использует fsync. > и если использует дает ли это гарантии что данные реально запишутся Как я уже написал выше — одно с другим не связано. Никаких гарантий это не даёт, естественно — как дефектная OS (к примеру, относительно недавно было немало шума, когда выяснилось, что linux — таки да ;) (уже исправлено)), так и "железо", которое тупо врёт, что оно всё записало, могут подорвать все эти "гарантии" — и ни одна программа, включая PostgreSQL, не может ничего с этим сделать. > ведь там еще есть магия в I/O scheduler. При правильной реализации OS — это к делу не относится.
Обсуждают сегодня