Commit 742b3a0d authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-26205 Merge new release of InnoDB 5.7.35 to 10.2

parents efae374e 236f825e
/***************************************************************************** /*****************************************************************************
Copyright (c) 1995, 2018, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 1995, 2021, Oracle and/or its affiliates.
Copyright (c) 2008, Google Inc. Copyright (c) 2008, Google Inc.
Copyright (c) 2013, 2021, MariaDB Corporation. Copyright (c) 2013, 2021, MariaDB Corporation.
...@@ -1896,8 +1896,6 @@ buf_pool_init_instance( ...@@ -1896,8 +1896,6 @@ buf_pool_init_instance(
LATCH_ID_HASH_TABLE_RW_LOCK, LATCH_ID_HASH_TABLE_RW_LOCK,
srv_n_page_hash_locks, MEM_HEAP_FOR_PAGE_HASH); srv_n_page_hash_locks, MEM_HEAP_FOR_PAGE_HASH);
buf_pool->page_hash_old = NULL;
buf_pool->zip_hash = hash_create(2 * buf_pool->curr_size); buf_pool->zip_hash = hash_create(2 * buf_pool->curr_size);
buf_pool->last_printout_time = time(NULL); buf_pool->last_printout_time = time(NULL);
...@@ -2556,8 +2554,6 @@ buf_pool_resize_hash( ...@@ -2556,8 +2554,6 @@ buf_pool_resize_hash(
{ {
hash_table_t* new_hash_table; hash_table_t* new_hash_table;
ut_ad(buf_pool->page_hash_old == NULL);
/* recreate page_hash */ /* recreate page_hash */
new_hash_table = ib_recreate( new_hash_table = ib_recreate(
buf_pool->page_hash, 2 * buf_pool->curr_size); buf_pool->page_hash, 2 * buf_pool->curr_size);
...@@ -2589,8 +2585,14 @@ buf_pool_resize_hash( ...@@ -2589,8 +2585,14 @@ buf_pool_resize_hash(
} }
} }
buf_pool->page_hash_old = buf_pool->page_hash; /* Concurrent threads may be accessing
buf_pool->page_hash = new_hash_table; buf_pool->page_hash->n_cells, n_sync_obj and try to latch
sync_obj[i] while we are resizing. Therefore we never
deallocate page_hash, instead we overwrite n_cells (and other
fields) with the new values. The n_sync_obj and sync_obj are
actually same in both. */
std::swap(*buf_pool->page_hash, *new_hash_table);
hash_table_free(new_hash_table);
/* recreate zip_hash */ /* recreate zip_hash */
new_hash_table = hash_create(2 * buf_pool->curr_size); new_hash_table = hash_create(2 * buf_pool->curr_size);
...@@ -3031,11 +3033,6 @@ buf_pool_resize() ...@@ -3031,11 +3033,6 @@ buf_pool_resize()
hash_unlock_x_all(buf_pool->page_hash); hash_unlock_x_all(buf_pool->page_hash);
buf_pool_mutex_exit(buf_pool); buf_pool_mutex_exit(buf_pool);
if (buf_pool->page_hash_old != NULL) {
hash_table_free(buf_pool->page_hash_old);
buf_pool->page_hash_old = NULL;
}
} }
UT_DELETE(chunk_map_old); UT_DELETE(chunk_map_old);
......
/***************************************************************************** /*****************************************************************************
Copyright (c) 2011, 2018, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2011, 2021, Oracle and/or its affiliates.
Copyright (c) 2016, 2020, MariaDB Corporation. Copyright (c) 2016, 2021, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software the terms of the GNU General Public License as published by the Free Software
...@@ -1299,6 +1299,9 @@ fts_cache_node_add_positions( ...@@ -1299,6 +1299,9 @@ fts_cache_node_add_positions(
ptr = ilist + node->ilist_size; ptr = ilist + node->ilist_size;
node->ilist_size_alloc = new_size; node->ilist_size_alloc = new_size;
if (cache) {
cache->total_size += new_size;
}
} }
ptr_start = ptr; ptr_start = ptr;
...@@ -1325,6 +1328,9 @@ fts_cache_node_add_positions( ...@@ -1325,6 +1328,9 @@ fts_cache_node_add_positions(
if (node->ilist_size > 0) { if (node->ilist_size > 0) {
memcpy(ilist, node->ilist, node->ilist_size); memcpy(ilist, node->ilist, node->ilist_size);
ut_free(node->ilist); ut_free(node->ilist);
if (cache) {
cache->total_size -= node->ilist_size;
}
} }
node->ilist = ilist; node->ilist = ilist;
...@@ -1332,10 +1338,6 @@ fts_cache_node_add_positions( ...@@ -1332,10 +1338,6 @@ fts_cache_node_add_positions(
node->ilist_size += enc_len; node->ilist_size += enc_len;
if (cache) {
cache->total_size += enc_len;
}
if (node->first_doc_id == FTS_NULL_DOC_ID) { if (node->first_doc_id == FTS_NULL_DOC_ID) {
node->first_doc_id = doc_id; node->first_doc_id = doc_id;
} }
......
/***************************************************************************** /*****************************************************************************
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 1995, 2021, Oracle and/or its affiliates.
Copyright (c) 2013, 2020, MariaDB Corporation. Copyright (c) 2013, 2021, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software the terms of the GNU General Public License as published by the Free Software
...@@ -2037,8 +2037,6 @@ struct buf_pool_t{ ...@@ -2037,8 +2037,6 @@ struct buf_pool_t{
page_hash mutex. Lookups can happen page_hash mutex. Lookups can happen
while holding the buf_pool->mutex or while holding the buf_pool->mutex or
the relevant page_hash mutex. */ the relevant page_hash mutex. */
hash_table_t* page_hash_old; /*!< old pointer to page_hash to be
freed after resizing buffer pool */
hash_table_t* zip_hash; /*!< hash table of buf_block_t blocks hash_table_t* zip_hash; /*!< hash table of buf_block_t blocks
whose frames are allocated to the whose frames are allocated to the
zip buddy system, zip buddy system,
......
...@@ -41,7 +41,7 @@ Created 1/20/1994 Heikki Tuuri ...@@ -41,7 +41,7 @@ Created 1/20/1994 Heikki Tuuri
#define INNODB_VERSION_MAJOR 5 #define INNODB_VERSION_MAJOR 5
#define INNODB_VERSION_MINOR 7 #define INNODB_VERSION_MINOR 7
#define INNODB_VERSION_BUGFIX 34 #define INNODB_VERSION_BUGFIX 35
/* The following is the InnoDB version as shown in /* The following is the InnoDB version as shown in
SELECT plugin_version FROM information_schema.plugins; SELECT plugin_version FROM information_schema.plugins;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment