Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fs/ufs: change default locking protocol - v4.1.x #12760

Merged

Commits on Aug 14, 2024

  1. fs/ufs: change default locking protocol

    The fs/ufs component by default disabled all file locking before
    read/write operations (except for NFS file systems). This was based on
    the assumption, that the file system itself performs the required
    locking operation and hence we don't have to add to it.
    
    This assumption is incorrect when using data sieving. In data sieving,
    the code 'ignore' small gaps when we write to a file, and perform
    instead a read-modify-write sequence ourselves for performance reasons.
    The problem is however that even within a collective operation not all
    aggregators might want to use data sieving. Hence, enabling locking just
    for the data-sieving routines is insufficient, all processes have to
    perform the locking. Therefore, our two options are: a) either disable
    write data-sieving by default, or b) enable range-locking by default.
    
    After some testing, I think enabling range-locking be default is the
    safer and better approach. It doesn't seem to show any significant
    performance impact on my test systems.
    
    Note, that on Lustre file systems, we can keep the default to no-locking
    as far as I can see, since the collective algorithm used by Lustre is
    unlikely to produce this pattern. I did add in however an mca parameter
    that allows us to control the locking algorithm used by the Lustre
    component as well, in case we need to change that for a particular
    use-case or platform.
    
    Fixes Issue open-mpi#12718
    
    Signed-off-by: Edgar Gabriel <[email protected]>
    (cherry picked from commit c697f28)
    edgargabriel committed Aug 14, 2024
    Configuration menu
    Copy the full SHA
    6973c47 View commit details
    Browse the repository at this point in the history