Я пытаюсь понять поведение ведения журнала jbd2, когда одна из многих транзакций, которые записываются в журнал, повреждена.
Согласно моему пониманию, для операции записи сначала выполняется запись всохранить данные в папке на диске, после чего соответствующая транзакция метаданных записывается в журнал.Формат обновлений метаданных выглядит следующим образом: 1) блок дескриптора транзакции 2) блоки метаданных и 3) блок фиксации транзакции.Это продолжается для нескольких транзакций.Наконец, во время контрольной точки метаданные, соответствующие этим транзакциям, записываются в расположение на диске.
Я также понимаю, что необходимо поддерживать порядок между транзакциями во время воспроизведения, если файловая система потерпела крах до появления контрольной точки.т.е. если у нас есть 3 транзакции T1, T2, T3, они будут воспроизведены последовательно.Это сделано для того, чтобы избежать сценария, в котором происходят перезаписи одного и того же блока или происходит удаление и последующее перераспределение одного и того же блока в двух последовательных транзакциях.
Мой вопрос относится к особому случаю: где T1, T2,и T3 является тремя последовательными транзакциями, если T1 и T3 поддерживают изменение метаданных для, скажем, блока метаданных M1, и T2 хранит изменение метаданных для блока M2.и M1 и M2 вообще не перекрываются, в этом случае, если T2 будет поврежден, T3 и все последующие транзакции будут отброшены?