это охуительно |
[Jan. 31st, 2019|05:27 pm] |
|
|
|
Comments: |
| From: | ketmar |
Date: | January 31st, 2019 - 04:11 pm |
---|
| | | (Link) |
|
да какая, в принципе, разница? даже если вдруг чего уже починили — in the wild осталась куча керналей со старым поведением, и с этим всем придётся жить ещё кучу лет.
вот продолжение https://lwn.net/Articles/752613/по идее, проблемы должны возникать (а) с битыми дисками (но там доктор сказал в морг, значит в морг) и (б) с NSF, но про нее и так известнo, что она во всех смыслах сломана, так что никто приличного поведения не ожидает
| From: | ketmar |
Date: | February 1st, 2019 - 01:13 am |
---|
| | | (Link) |
|
это (то, что в статье добавили) — такая же бесполезная хуйня, как и существующее, увы. там постгресники приводят пример того, как работает постгрес: 2 процесса. один — бд, другой — монитор-синкер. бд закрыла файл, монитор открыл. сделал fsync. получил залупу. закрыл файл. бд открыла. сделала fsync. ой — получила «всё заебись». но данные уже проёбаны.
то есть, ошибка не аттачится к иноде, и когда все дескрипторы закрыли — проёбывается. в общем, в POSIX написано про file, и не указаны sequence points. нормальные инженеры это поняли вполне однозначно: • файл — инода, сквенс-поинт — последняя успешная запись. а кернел дивилаперс поняли как обычно: • файл — это открытый дескриптор, секвенс-поинт — это последний fsync вне зависимости от его успешности.
стандарт можно натянуть на оба эти толкования. только первое — толкование здорового человека, а второе — «да ну нахуй нормально ядро делать, так проще».
(а) Если бы было руками написано -- никакого особенно "в морг" не прошло бы, транзакцыя откатилась с ошыбкой, админу вставили пистон чтобы он бежал менять диск.
(б) УМВР. NFS -- отлично работающий протокол для текущих применений. (Ну, хранение постгресса среди них пока нет, ну и что?) | |