• Marko Mäkelä's avatar
    MDEV-25801: buf_flush_dirty_pages() is very slow · 8af53897
    Marko Mäkelä authored
    In commit 7cffb5f6 (MDEV-23399)
    the implementation of buf_flush_dirty_pages() was replaced with
    a slow one, which would perform excessive scans of the
    buf_pool.flush_list and make little progress.
    
    buf_flush_list(), buf_flush_LRU(): Split from buf_flush_lists().
    Vladislav Vaintroub noticed that we will not need to invoke
    log_flush_task.wait() for the LRU eviction flushing.
    
    buf_flush_list_space(): Replaces buf_flush_dirty_pages().
    This is like buf_flush_list(), but operating on a single
    tablespace at a time. Writes at most innodb_io_capacity
    pages. Returns whether some of the tablespace might remain
    in the buffer pool.
    8af53897
row0import.cc 109 KB