fsync()-in webdav PUT
bra at fsn.hu
Fri Mar 2 11:30:31 UTC 2018
On 03/02/2018 11:42 AM, Aziz Rozyev wrote:
> man page quote is related to the Valery’s argument that fsync wont affect performance, forget it.
Of course it affects performance. But as for how much: it depends on
many factors. It's possible to build servers where the overall effect
will be negligible.
> It’s nonsense because you’re trying to solve the reliability problem at the different level,
> it has been multiple times suggested here already by maxim and Paul, that it’s better
> to invest to the good server/storage infrastructure, instead of fsyncing each PUT.
Yes, it has been suggested multiple times, the only problem is it's not
true. No matter how good server/storage you have, if you write to
unbacked memory buffers (which nginx does), you are toast.
> Regarding the DB server analogy, you’re still not save from the power outages as long as your
> transaction isn’t in a transaction log.
> If you’re still consent with syncing and ready to sacrifice your time, try mounting a file system
> with ‘sync’ option.
That's what really kills performance, because of the async nature of
nginx. That's why I'm proposing an option to do the fsync at the end of
the PUT (or maybe even the whole operation) in a thread(pool).
If you care about performance and reliability, that's the way it has to
More information about the nginx