Here is a lengthy posting from Dan Luu on why it is so hard to safely write files on Unix-like systems. It comes down to a combination of POSIX semantics and filesystem bugs. http://danluu.com/file-consistency/
прочитал первый экран и хочу плакать. ‎- псы в рапиде
обсуждение в смузи-баре™: https://news.ycombinator.com/item?id=10725859 ‎- 9000
reiserfs! They mention reiserfs! ‎- Кубинский щелезуб
reiserfs had a number of great ideas. too bad its author could not make peace with his wife. ‎- 9000
^ he had better exception handling in the product, but worse in real life! ‎- Кубинский щелезуб
жесть какая. а почему ещё не все окружающие нас файлы сломались? ‎- поцелуйчики в строю
^ милостию божией. Только ею одной. На самом деле нет - просто ну, это вот всё случается при крэшах систем - то есть, в основном, когда питание выдёргивается внезапно. Потому что при синем экране/кернел панике оно, кажется, таки пытается закончить запись. ‎- Кубинский щелезуб
@qub: ^ this, да. на самом деле очень многие сломались. люди говорят, что основные проблемы в этом — с почтовыми клиентами. потому что именно там самый напряженный паттерн использования файловой системы — почти все остальные программы пишут файлы последовательно с начала до конца. (Исключение — базы данных, но там проблемы очень быстро выявляются, гггг, и пишут их люди которые много думают о надежности). Ну и как бы да, у тебя накрылся винт, ты не будешь там разбираться — "а вот если бы мы тогда с восьмерки зашли" — ну упало, чо, какие претензии, радуйтесь что хоть что-то осталось. ‎- псы в рапиде
это примерно как "почему все машины на дорогах не слиплись в один огромный комок металла, ведь у них столько для этого возможностей". потому что на большинстве компов * не пишут особо * если пишут, то никому не интересную ерунду * постоянно питание никто не дёргает, в итоге иногда что-то ломается, но никто не заметил. у нас вот есть одна gsm станциечка в деревне с очень херовым питанием, она ребутается по brownout минимум раз в час. там можно много интересного наблюдать. ‎- смешная третья опция
вообще - нисколько не умаляя в принципе серьезности описанной проблемы - я ни разу в жизни не видел файлов, запорченных приложением из-за не вызванного вовремя sync'а. Разнесенную в хлам файловую систему - видел. Файлы, забитые нулями, потому что файловая система решила, что записать что-то туда нужно обязательно, а что именно - придумать не смогла, - такое тоже видел (кстати, да, с почтовым ящиком) ‎- лицо не владеющее языком
@artemandreev у lucene было давно, данные разъезжались с метой. про нули я видел красивое с RAID1, когда один диск вскрылся, но не до конца, и вместо ошибки чтения отдавал нули. рейд-контроллер посмотрел на это дело, пожал плечами и "починил" теми нулями второй диск. ‎- смешная третья опция