mirror of
https://github.com/MariaDB/server.git
synced 2025-02-01 03:21:53 +01:00
MDEV-12266: Clean up btr_search_drop_page_hash_when_freed()
Remove the parameter page_size, and pass a dummy page size to buf_page_get_gen() along with BUF_PEEK_IF_IN_POOL.
This commit is contained in:
parent
e2bf76cb32
commit
5dd5b6cadc
5 changed files with 13 additions and 30 deletions
|
@ -1280,12 +1280,8 @@ cleanup:
|
|||
/** Drop any adaptive hash index entries that may point to an index
|
||||
page that may be in the buffer pool, when a page is evicted from the
|
||||
buffer pool or freed in a file segment.
|
||||
@param[in] page_id page id
|
||||
@param[in] page_size page size */
|
||||
void
|
||||
btr_search_drop_page_hash_when_freed(
|
||||
const page_id_t& page_id,
|
||||
const page_size_t& page_size)
|
||||
@param[in] page_id page id */
|
||||
void btr_search_drop_page_hash_when_freed(const page_id_t& page_id)
|
||||
{
|
||||
buf_block_t* block;
|
||||
mtr_t mtr;
|
||||
|
@ -1301,7 +1297,7 @@ btr_search_drop_page_hash_when_freed(
|
|||
are possibly holding, we cannot s-latch the page, but must
|
||||
(recursively) x-latch it, even though we are only reading. */
|
||||
|
||||
block = buf_page_get_gen(page_id, page_size, RW_X_LATCH, NULL,
|
||||
block = buf_page_get_gen(page_id, univ_page_size, RW_X_LATCH, NULL,
|
||||
BUF_PEEK_IF_IN_POOL, __FILE__, __LINE__,
|
||||
&mtr, &err);
|
||||
|
||||
|
|
|
@ -4247,6 +4247,10 @@ buf_page_get_gen(
|
|||
replace any old pages, which were not evicted during DISCARD.
|
||||
Skip the assertion on space_page_size. */
|
||||
break;
|
||||
case BUF_PEEK_IF_IN_POOL:
|
||||
/* In this mode, the caller may pass a dummy page size,
|
||||
because it does not really matter. */
|
||||
break;
|
||||
default:
|
||||
ut_error;
|
||||
case BUF_GET_NO_LATCH:
|
||||
|
@ -4254,7 +4258,6 @@ buf_page_get_gen(
|
|||
/* fall through */
|
||||
case BUF_GET:
|
||||
case BUF_GET_IF_IN_POOL:
|
||||
case BUF_PEEK_IF_IN_POOL:
|
||||
case BUF_GET_IF_IN_POOL_OR_WATCH:
|
||||
case BUF_GET_POSSIBLY_FREED:
|
||||
bool found;
|
||||
|
|
|
@ -224,14 +224,12 @@ buf_LRU_evict_from_unzip_LRU(
|
|||
/** Attempts to drop page hash index on a batch of pages belonging to a
|
||||
particular space id.
|
||||
@param[in] space_id space id
|
||||
@param[in] page_size page size
|
||||
@param[in] arr array of page_no
|
||||
@param[in] count number of entries in array */
|
||||
static
|
||||
void
|
||||
buf_LRU_drop_page_hash_batch(
|
||||
ulint space_id,
|
||||
const page_size_t& page_size,
|
||||
const ulint* arr,
|
||||
ulint count)
|
||||
{
|
||||
|
@ -247,7 +245,7 @@ buf_LRU_drop_page_hash_batch(
|
|||
in the tablespace, and a previous DROP TABLE would have
|
||||
already removed the AHI entries. */
|
||||
btr_search_drop_page_hash_when_freed(
|
||||
page_id_t(space_id, *arr), page_size);
|
||||
page_id_t(space_id, *arr));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -263,15 +261,6 @@ buf_LRU_drop_page_hash_for_tablespace(
|
|||
buf_pool_t* buf_pool, /*!< in: buffer pool instance */
|
||||
ulint id) /*!< in: space id */
|
||||
{
|
||||
bool found;
|
||||
const page_size_t page_size(fil_space_get_page_size(id, &found));
|
||||
|
||||
if (!found) {
|
||||
/* Somehow, the tablespace does not exist. Nothing to drop. */
|
||||
ut_ad(0);
|
||||
return;
|
||||
}
|
||||
|
||||
ulint* page_arr = static_cast<ulint*>(ut_malloc_nokey(
|
||||
sizeof(ulint) * BUF_LRU_DROP_SEARCH_SIZE));
|
||||
|
||||
|
@ -338,8 +327,7 @@ next_page:
|
|||
the latching order. */
|
||||
buf_pool_mutex_exit(buf_pool);
|
||||
|
||||
buf_LRU_drop_page_hash_batch(
|
||||
id, page_size, page_arr, num_entries);
|
||||
buf_LRU_drop_page_hash_batch(id, page_arr, num_entries);
|
||||
|
||||
num_entries = 0;
|
||||
|
||||
|
@ -371,7 +359,7 @@ next_page:
|
|||
buf_pool_mutex_exit(buf_pool);
|
||||
|
||||
/* Drop any remaining batch of search hashed pages. */
|
||||
buf_LRU_drop_page_hash_batch(id, page_size, page_arr, num_entries);
|
||||
buf_LRU_drop_page_hash_batch(id, page_arr, num_entries);
|
||||
ut_free(page_arr);
|
||||
}
|
||||
#endif /* BTR_CUR_HASH_ADAPT */
|
||||
|
|
|
@ -2973,7 +2973,7 @@ fseg_free_page_low(
|
|||
|
||||
if (ahi) {
|
||||
btr_search_drop_page_hash_when_freed(
|
||||
page_id_t(space->id, offset), page_size);
|
||||
page_id_t(space->id, offset));
|
||||
}
|
||||
#endif /* BTR_CUR_HASH_ADAPT */
|
||||
|
||||
|
@ -3177,8 +3177,7 @@ fseg_free_extent(
|
|||
|
||||
btr_search_drop_page_hash_when_freed(
|
||||
page_id_t(space->id,
|
||||
first_page_in_extent + i),
|
||||
page_size);
|
||||
first_page_in_extent + i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -131,10 +131,7 @@ page that may be in the buffer pool, when a page is evicted from the
|
|||
buffer pool or freed in a file segment.
|
||||
@param[in] page_id page id
|
||||
@param[in] page_size page size */
|
||||
void
|
||||
btr_search_drop_page_hash_when_freed(
|
||||
const page_id_t& page_id,
|
||||
const page_size_t& page_size);
|
||||
void btr_search_drop_page_hash_when_freed(const page_id_t& page_id);
|
||||
|
||||
/** Updates the page hash index when a single record is inserted on a page.
|
||||
@param[in] cursor cursor which was positioned to the place to insert
|
||||
|
|
Loading…
Add table
Reference in a new issue