]> Sergey Matveev's repositories - stargrave-blog.git/commit
В чём проблема работать с файлами?
authorSergey Matveev <stargrave@stargrave.org>
Thu, 28 Mar 2024 09:54:09 +0000 (12:54 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Thu, 28 Mar 2024 10:15:40 +0000 (13:15 +0300)
commit9d8a82c6f271b5ace2af7c7499901817cdd13915
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parentad4096b045f4cd2f6f6fa249e9a81396308c6cfe
В чём проблема работать с файлами?

https://habr.com/ru/articles/803347/
https://lwn.net/Articles/752093/
https://research.cs.wisc.edu/wind/Publications/sfa-dsn05.pdf
https://pages.cs.wisc.edu/~laksh/research/Bairavasundaram-ThesisWithFront.pdf
https://elinux.org/images/b/b6/EMMC-SSD_File_System_Tuning_Methodology_v1.0.pdf
https://www.cs.utexas.edu/~bornholt/papers/ferrite-asplos16.pdf
https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-pillai.pdf
Много интересной информации об особенностях работы с файлами. В основном
речь про целостность и консистентность данных на ФС. Упоминаются различия
между fdatasync и fsync. Факт (1e91d63fac9882e2c226ceb360916d802c96e9be)
отсутствия работающего POSIX fsync на macOS. То что надо бы fsync-ать и
директории (я много где в своём софте подобное делаю). Есть статья с
анализом выживаемости ext3, ReiserFS и JFS -- всё очень плохо со всеми
ними, хотя, как говорят авторы, ReiserFS типа меньшее из зол. Про JFS
мне всегда было любопытно, но о ней почти ничего из практики не
известно: типа никто не использует её, судя по всему. То что NTFS говно
и так можно было не гадать. Есть статья, демонстрирующая то, что btrfs
после спонтанных выключений питания -- приходит в полную негодность и
невозможность восстановления. Вопросы износа/ошибок на HDD, SSD,
контроллеров, ECC RAM. Ну и куча примеров как надо работать с файлами.
Полезная статья!

Ничего явно не сказано про ZFS, хотя, учитывая наличие btrfs, статьи
вполне себе современные и в курсе про эту ФС. Видимо, кроме редких
косяков в самом коде (кои везде бывают), она вне "конкуренции". Ведь она
именно в условиях сбоящих контроллеров, протухающих секторов должна же
выживать и гарантировать обнаружение потери консистентности/целостности.
Нет ничего и про UFS2, в которой вообще soft-updates вместо журналов.