• Jan Lindström's avatar
    MDEV-11025: Make number of page cleaner threads variable dynamic · b23a1096
    Jan Lindström authored
    New test cases
            innodb-page-cleaners
    
    Modified test cases
            innodb_page_cleaners_basic
    
    New function buf_flush_set_page_cleaner_thread_cnt
        Increase or decrease the amount of page cleaner worker threads.
        In case of increase this function creates based on current
        abount and requested amount how many new threads should be
        created. In case of decrease this function sets up the
        requested amount of threads and uses is_requested event
        to signal workers. Then we wait until all new treads
        are started, old threads that should exit signal
        is_finished or shutdown has marked that page cleaner
        should finish.
    
    buf_flush_page_cleaner_worker
            Store current thread id and thread_no and then signal
            event is_finished. If number of used page cleaner threads
            decrease we shut down those threads that have thread_no
            greater or equal than number of page configured page
            cleaners - 1 (note that there will be always page cleaner
            coordinator). Before exiting we signal is_finished.
    
    New function innodb_page_cleaners_threads_update
            Update function for innodb-page-cleaners system variable.
    
    innobase_start_or_create_for_mysql
            If more than one page cleaner threads is configured
            we use new function buf_flush_set_page_cleaner_thread_cnt
            to set up the requested threads (-1 coordinator).
    b23a1096
ha_innodb.cc 626 KB