Through we passed SYNC_FILE_RANGE_WRITE to sync_file_range, to make it as asynchronous as possible, it still could be blocked, e.g. the os io request queue is full.
Since we use sync_file_range just as a page cache advisor role it doesn't decide or guarantee the real durability, it would be nice if we could run it in backgroud. At least my test log showed, a few sync_file_range calls still cost tens of ms or more, due to the happened location is in the critical write path(BlockReceiver class), from a upper view, like HBase application, will "hung" tens of ms as well during Hlog syncing.
Generally speaking, the patch could not improve too much, but, better than before, right ?