At least on Linux, this wouldn't be that ideal. These LWN articles go over
the general fsync mess and the lack of viable alternatives:

https://lwn.net/Articles/351422/

> [...] most file systems take the brute force approach, with the result
that fsync() commonly takes time proportional to all outstanding writes to
the file system.

> So, now we have the following situation: fsync() is required to guarantee
that file data is on stable storage, but it may perform arbitrarily poorly,
depending on what other activity is going on in the file system.

https://lwn.net/Articles/788938/

> The problem is that filesystem developers are not willing to make much in
the way of guarantees unless applications call fsync() [...] it is a
"terrible answer" because it has impacts all over the system.

On Thu, Dec 24, 2020, 11:17 AM Michael A. Smith <mich...@smith-li.com>
wrote:

> With all the buffering that modern disks and filesystems do, a
> specific question has come up a few times with respect to whether or
> not data was actually written after flush. I think it would be pretty
> useful for the standard library to have a variant in the io module
> that would explicitly fsync on close.
>
> You might be tempted to argue that this can be done very easily in
> Python already, so why include it in the standard io module?
>
> 1. It seems to me that it would be better to do this in C, so for the
> folks who need to make a consistency > performance kind of choice,
> they don't have to sacrifice any additional performance.
> 2. Having it in the io library will call attention to this issue,
> which I think is something a lot of folks don't consider. Assuming
> that `close` or `flush` are sufficient for consistency has always been
> wrong (at its limits), but it was less likely to be a stumbling block
> in the past, when buffering was less aggressive and less layered and
> the peak size and continuous-ness of data streams was a more niche
> concern.
> 3. There are many ways to do this, and I think several of them could
> be subtly incorrect. In other words, maybe it can't be done very
> easily and correctly after all. Providing "obviously right" ways to do
> things is the baileywick of the standard library, isn't it?
>
> Thanks for your consideration and feedback,
> Michael Smith
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/UOUS4BNSI6WFBPWMXHJF5IEAV2PQ47VN/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/2BIDNDQJSDX37G7E3UYEMSO2KOQJLHNI/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to