Skip to content

WAL

Write Ahead Log - нужен чтобы не потерять даннные при сбое в бд. Все данные записываются сначала в wal а затем сбрасываются на диск. В случае, если произошел сбой, данные из wal накатываются во время запуска кластера. Чтобы файл не распухал, используются контрольные точки/чекпоинты.

Запись данных на диск может происходить в синхронном и асинхронном режиме.

  • Синхронный - Более затратный но надежный
  • Асинхронный - Быстрее но можно потерять данные

Таблицы можно создавать с пометкой UNLOGGED, в таком случае данные про эту таблицу не будут попадать в WAL. Это ускорит время работы с такой таблицей(запись, чтение) но в случае сбое БД, во время запуска к такой таблице будет применен TRUNCATE и все данные будут потеряны.

В WAL так же не попадают временные таблицы.