-
Marko Mäkelä authored
In recv_sys_t::apply(), we were unnecessarily looking up pages in buf_pool.page_hash and potentially waiting for exclusive page latches. Before buf_page_get_low() would return an x-latched page, that page will have to be read and buf_page_read_complete() would have invoked recv_recover_page() to apply the log to the page. Therefore, it suffices to invoke recv_read_in_area() to trigger a transition from RECV_NOT_PROCESSED. recv_read_in_area(): Take the iterator as a parameter, and remove page_id lookups. Should the page already be in buf_pool.page_hash, buf_page_init_for_read() will return nullptr to buf_read_page_low() and buf_read_page_background(). recv_sys_t::apply(): Replace goto, remove dead code, and add assertions to guarantee that the iteration will make progress. Reviewed by: Vladislav Lesin
56f5599f