• Binbin's avatar
    fsync the old aof file when open a new INCR AOF (#11004) · 03fff10a
    Binbin authored
    
    
    In rewriteAppendOnlyFileBackground, after flushAppendOnlyFile(1),
    and before openNewIncrAofForAppend, we should call redis_fsync
    to fsync the aof file.
    
    Because we may open a new INCR AOF in openNewIncrAofForAppend,
    in the case of using everysec policy, the old AOF file may not
    be fsynced in time (or even at all).
    
    When using everysec, we don't want to pay the disk latency from
    the main thread, so we will do a background fsync.
    
    Adding a argument for bioCreateCloseJob, a `need_fsync` flag to
    indicate that a fsync is required before the file is closed. So we will
    fsync the old AOF file before we close it.
    
    A cleanup, we make union become a union, since the free_* args and
    the fd / fsync args are never used together.
    Co-authored-by: default avatarOran Agra <oran@redislabs.com>
    03fff10a
bio.c 11.9 KB