как файловые системы журналирования обрабатывают добавление записи? - PullRequest
0 голосов
/ 03 апреля 2020

Добавление записей часто встречается в различных ситуациях, таких как ведение журнала базы данных, слияние SST и т. Д. c. Запись с добавлением включает в себя следующие шаги:

1) Выделить дополнительные блоки диска в файл, соответственно обновив метаданные, такие как битовая карта свободных блоков, массив преобразования логических блоков в физические в inode файла и т. Д. c.

2) записать новый контент в выделенные блоки диска

3) обновить размер файла, который обычно хранится в inode файла

Может распространиться Журнальные файловые системы, такие как xfs, ext3, ntfs, гарантируют, что все вышеперечисленные шаги выполняются атомарно? Я знаю, что все журнальные файловые системы могут гарантировать согласованность метаданных. Но в случае с добавлением записи могут ли файловые системы журналирования гарантировать согласованность как содержимого файла, так и метаданных файла? Например, многие журналирующие файлы только регистрируют обновления метаданных, обновления содержимого файлов не регистрируются. Если файловая система помещает запись журнала «фиксация операции» в область журнала файловой системы после всех записей журнала об обновлениях метаданных (растровое изображение свободного блока, массив и файл сопоставления логических и физических блоков сохраняемый в) размер записывается в область журнала файловой системы, но до добавленное содержимое записывается на диск, тогда fs гарантирует только согласованность метаданных, потому что если компьютер обрабатывает sh после запись в журнале "фиксации операции" записывается, но до все содержимое файла записывается на диск, файл может содержать грязный контент.

Но если запись журнала "операция фиксации" сгенерирована после , содержимое файла сбрасывается, согласованность как метаданных, так и содержимого может быть гарантирована, потому что если содержимое не было очищено, когда Когда происходит cra sh, запись в журнале "фиксации операции" также будет отсутствовать, что приведет к откату всей добавляемой операции записи во время восстановления.

Какой из 2 подходов применяют основные журналирующие функции fs?

...