mariadb/storage
Marko Mäkelä 9db2b327d4 MDEV-34759: buf_page_get_low() is unnecessarily acquiring exclusive latch
buf_page_ibuf_merge_try(): A new, separate function for invoking
ibuf_merge_or_delete_for_page() when needed. Use the already requested
page latch for determining if the call is necessary. If it is and
if we are currently holding rw_latch==RW_S_LATCH, upgrading to an exclusive
latch may involve waiting that another thread acquires and releases
a U or X latch on the page. If we have to wait, we must recheck if the
call to ibuf_merge_or_delete_for_page() is still needed. If the page
turns out to be corrupted, we will release and fail the operation.
Finally, the exclusive page latch will be downgraded to the originally
requested latch.

ssux_lock_impl::rd_u_upgrade_try(): Attempt to upgrade a shared lock to
an update lock.

sux_lock::s_x_upgrade_try(): Attempt to upgrade a shared lock to
exclusive.

sux_lock::s_x_upgrade(): Upgrade a shared lock to exclusive.
Return whether a wait was elided.

ssux_lock_impl::u_rd_downgrade(), sux_lock::u_s_downgrade():
Downgrade an update lock to shared.
2024-08-23 13:27:50 +03:00
..
archive Merge 10.5 into 10.6 2024-06-24 13:09:47 +03:00
blackhole MDEV-33746 Supply missing override markings 2024-06-20 11:32:13 -04:00
columnstore columnstore 6.4.8-2 2024-05-09 00:04:20 +02:00
connect Merge branch '10.5' into 10.6 2024-07-18 16:25:33 +02:00
csv MDEV-33746 Supply missing override markings 2024-06-20 11:32:13 -04:00
example MDEV-33746 Supply missing override markings 2024-06-20 11:32:13 -04:00
federated Merge 10.5 into 10.6 2024-06-24 13:09:47 +03:00
federatedx Merge 10.5 into 10.6 2024-06-24 13:09:47 +03:00
heap Merge 10.5 into 10.6 2024-06-24 13:09:47 +03:00
innobase MDEV-34759: buf_page_get_low() is unnecessarily acquiring exclusive latch 2024-08-23 13:27:50 +03:00
maria Merge remote-tracking branch 'origin/10.5' into 10.6 2024-07-08 18:59:04 +04:00
mroonga Merge branch '10.5' into 10.6 2024-07-18 16:25:33 +02:00
myisam Merge 10.5 into 10.6 2024-08-14 10:56:11 +03:00
myisammrg Merge 10.5 into 10.6 2024-06-24 13:09:47 +03:00
oqgraph Merge branch '10.5' into 10.6 2024-06-26 09:16:54 +08:00
perfschema Merge branch '10.5' into 10.6 2024-07-03 13:27:23 +02:00
rocksdb Merge 10.5 into 10.6 2024-06-24 13:09:47 +03:00
sequence MDEV-33746 Supply missing override markings 2024-06-20 11:32:13 -04:00
sphinx Merge 10.5 into 10.6 2024-06-24 13:09:47 +03:00
spider Merge 10.5 into 10.6 2024-08-14 10:56:11 +03:00
test_sql_discovery Merge 10.5 into 10.6 2024-06-24 13:09:47 +03:00