Skip to content

Using F_FULLFSYNC for flush() causing slow performance on Mac #156

@dslee414

Description

@dslee414

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions