История изменений
Исправление
kirk_johnson,
(текущая версия)
:
И в этот момент питание и пропадёт.
Запись атомарна. Она либо есть, либо её нет.
Есть. Блоки распределены, из таблиц свободных удалены, а в таблицы занятых конкретного inode записаться не успели.
Для этого нужен журнал.
И вообще, всё это ерунда по сравнению с тем, что приложений, работающих по принципу: записали флаг: «транзакция началась», сделали sync, начали писать туда и сюда, сделали sync, удалили флаг транзакция началась, сделали sync - по пальцам пересчитать. Ну разве что большие СУБД.
Ага. Потому что это чаще всего никому не нужно. Хотя есть rsync, который сперва пишет в .file, а потом делает атомарный move в file.
Исходная версия
kirk_johnson,
:
И в этот момент питание и пропадёт.
Запись атомарна. Она либо есть, либо её нет.
Есть. Блоки распределены, из таблиц свободных удалены, а в таблицы занятых конкретного inode записаться не успели.
Для этого нужен журнал.
И вообще, всё это ерунда по сравнению с тем, что приложений, работающих по принципу: записали флаг: «транзакция началась», сделали sync, начали писать туда и сюда, сделали sync, удалили флаг транзакция началась, сделали sync - по пальцам пересчитать. Ну разве что большие СУБД.
Ага. Потому что это чаще всего никому не нужно.