fs icon indicating copy to clipboard operation
fs copied to clipboard

Using F_FULLFSYNC for flush() causing slow performance on Mac

Open dslee414 opened this issue 1 year ago • 1 comments

What is the issue with the File System Standard?

Chromium uses F_FULLFSYNC for handle.flush() on Mac, for which we have received feedback on noticeably slow performance, compared to other browsers: https://crbug.com/1440778

  • Are other vendors using or not using F_FULLFSYNC (vs. fsync)? If not using, what was the reasoning behind the decision?
    • As the bug above references this, Safari seems to have chosen NOT to use it a long time ago -- is it still the case?
  • Have you observed any performance difference between Mac and Windows?

In most use cases, flush() shouldn't or wouldn't be called too often, but perhaps there might be some advanced use case such as the one reported in the chromium bug above.

In any case, we could consider making full-sync behavior configurable at API-level, but not quite sure how this would fit into API, given that it is OS-specific behavior, and also at what granularity. Alternatively, Chromium could consider not using F_FULLFSYNC without any API changes, but that would also introduce divergence between Mac and Windows.

Any thoughts?

dslee414 avatar Jan 18 '24 20:01 dslee414

cc @whatwg/storage

annevk avatar Jan 22 '24 08:01 annevk