• Marko Mäkelä's avatar
    Reduce the ibuf_mutex hold time. This does not fix the update · 84fbabac
    Marko Mäkelä authored
    regression in Bug #54914, but it does speed up the execution for
    innodb_change_buffering=inserts.
    
    ibuf_add_ops(), ibuf_merge_or_delete_for_page(),
    ibuf_delete_for_discarded_space(): Use atomic built-ins instead of
    ibuf_mutex, when available.
    
    ibuf_add_free_page(), ibuf_remove_free_page(), ibuf_contract_ext():
    Release ibuf_mutex earlier.
    
    ibuf_free_excess_pages(): Release ibuf_mutex before a conditional branch.
    
    ibuf_insert_low(): Release ibuf_mutex before a conditional
    branch. Create ibuf_entry before re-acquiring ibuf_mutex. Simplify a
    loop to reduce code footprint. Release ibuf_mutex before mtr_commit()
    [btr_pcur_close()].
    
    ibuf_is_empty(): Release ibuf_mutex before mtr_commit().
    84fbabac
ibuf0ibuf.c 124 KB