fsync()-in webdav PUT

Valery Kholodkov valery+nginxen at grid.net.ru
Mon Mar 5 13:12:01 UTC 2018


On 05-03-18 12:54, Reinis Rozitis wrote:
>> Have you ever seen an async program which uses threads to run blocking
>> operations?
>
> The point was that it's odd that you are going to "trust" the userland daemon to finish the sync operation (which obviously has the possibility to fail) in some background thread while not trusting the OS/kernel to do the buffer/vm/pagecache flush at some "later" / "better" time (which you can even finetune to do it immediately - vm.dirty_ratio / vm.dirty_expire_centisecs etc).

And so is odd to return a positive reply when you only speculated about 
its positiveness.

> Besides even with sync you don't get 100% of guarantees that the write actually ends (correctly) "on the iron" - coming from the land of ZFS ("lots of cheksuming") people will confirm that there are quite a few parts (like drive cache/firmware, controller cache/firmware) which occasionally lie about state of things.

Not lie, but speculate. The speculative behavior is then isolated in the 
"iron", don't you think?

val



More information about the nginx mailing list