Skip to content

Potential pulling / syncing optimization #326

Description

@travier

composefs-rs used to fsync each file written when pulling which was costly.

This got changed to a global syncfs call in c3677f1.

We could potentially do better by following a logic similar to what's done in ostree:

  • When pulling, link all the files to be written into a tmp folder
  • Then fsync the entire folder once ready to move them into the composefs repo
  • Then complete the repo import
  • We would have a tmp directory per pull operation to enable parallel pulls

Some notes from Pragyan:

Adding some stats related to fsync:
For 37857 objects, we call fsync 4 times (I’m not sure at what point we sync everything)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions