Skip to content
  • Shaohua Wang's avatar
    2bcc00d1
    wl#8423 InnoDB: Split the buffer pool mutex · 2bcc00d1
    Shaohua Wang authored
    
    
    1. Introduce several new list/hash protecting mutexes, and access without any
    mutex to several variables. The new mutexes are:
      - LRU_list_mutex for the LRU_list;
      - zip_free mutex for the zip_free arrays;
      - zip_hash mutex for the zip_hash hash and in_zip_hash flag;
      - free_list_mutex for the free_list and withdraw list;
      - flush_state_mutex for init_flush, n_flush, no_flush arrays.
    
    2. The variables switched from buffer pool mutex protection to atomic operations
    and/or os_rmb/os_wmb.
      - srv_buf_pool_old_size
      - srv_buf_pool_size
      - srv_buf_pool_curr_size
      - srv_buf_pool_base_size
      - buf_pool->buddy_stat[i].used
      - buf_pool->curr_size, n_chunks_new.
    
    Reviewed-by: default avatarDebarun Banerjee <debarun.banerjee@oracle.com>
    Reviewed-by: default avatarAllen Lai <zheng.lai@oracle.com>
    RB: 9797
    2bcc00d1
    wl#8423 InnoDB: Split the buffer pool mutex
    Shaohua Wang authored
    
    
    1. Introduce several new list/hash protecting mutexes, and access without any
    mutex to several variables. The new mutexes are:
      - LRU_list_mutex for the LRU_list;
      - zip_free mutex for the zip_free arrays;
      - zip_hash mutex for the zip_hash hash and in_zip_hash flag;
      - free_list_mutex for the free_list and withdraw list;
      - flush_state_mutex for init_flush, n_flush, no_flush arrays.
    
    2. The variables switched from buffer pool mutex protection to atomic operations
    and/or os_rmb/os_wmb.
      - srv_buf_pool_old_size
      - srv_buf_pool_size
      - srv_buf_pool_curr_size
      - srv_buf_pool_base_size
      - buf_pool->buddy_stat[i].used
      - buf_pool->curr_size, n_chunks_new.
    
    Reviewed-by: default avatarDebarun Banerjee <debarun.banerjee@oracle.com>
    Reviewed-by: default avatarAllen Lai <zheng.lai@oracle.com>
    RB: 9797
Loading