Reduce the ibuf_mutex hold time. This does not fix the update
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().
Showing
Please register or sign in to comment