• Dongmao Zhang's avatar
    dm log userspace: allow mark requests to piggyback on flush requests · 5066a4df
    Dongmao Zhang authored
    In the cluster evironment, cluster write has poor performance because
    userspace_flush() has to contact a userspace program (cmirrord) for
    clear/mark/flush requests.  But both mark and flush requests require
    cmirrord to communicate the message to all the cluster nodes for each
    flush call.  This behaviour is really slow.
    
    To address this we now merge mark and flush requests together to reduce
    the kernel-userspace-kernel time.  We allow a new directive,
    "integrated_flush" that can be used to instruct the kernel log code to
    combine flush and mark requests when directed by userspace.  If not
    directed by userspace (due to an older version of the userspace code
    perhaps), the kernel will function as it did previously - preserving
    backwards compatibility.  Additionally, flush requests are performed
    lazily when only clear requests exist.
    Signed-off-by: default avatarDongmao Zhang <dmzhang@suse.com>
    Signed-off-by: default avatarJonathan Brassow <jbrassow@redhat.com>
    Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    5066a4df
dm-log-userspace-base.c 21.7 KB