mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 03:17:20 +02:00
Merge 10.5 into 10.6 (MDEV-27913)
This commit is contained in:
commit
06eaca9b86
11 changed files with 138 additions and 66 deletions
|
|
@ -1,3 +1,4 @@
|
|||
call mtr.add_suppression("InnoDB: Total InnoDB FTS size .* for the table .* exceeds the innodb_ft_cache_size .*");
|
||||
#
|
||||
# Bug#32831765 SERVER HITS OOM CONDITION WHEN LOADING TWO
|
||||
# INNODB TABLES WITH FTS INDEXES
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
--source include/have_debug.inc
|
||||
--source include/big_test.inc
|
||||
|
||||
call mtr.add_suppression("InnoDB: Total InnoDB FTS size .* for the table .* exceeds the innodb_ft_cache_size .*");
|
||||
--echo #
|
||||
--echo # Bug#32831765 SERVER HITS OOM CONDITION WHEN LOADING TWO
|
||||
--echo # INNODB TABLES WITH FTS INDEXES
|
||||
|
|
|
|||
|
|
@ -16,6 +16,15 @@ select * from information_schema.session_variables where variable_name='innodb_f
|
|||
VARIABLE_NAME VARIABLE_VALUE
|
||||
INNODB_FT_CACHE_SIZE 8000000
|
||||
set global innodb_ft_cache_size=1;
|
||||
ERROR HY000: Variable 'innodb_ft_cache_size' is a read only variable
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect innodb_ft_cache_size value: '1'
|
||||
SHOW VARIABLES like 'innodb_ft_cache_size';
|
||||
Variable_name Value
|
||||
innodb_ft_cache_size 1600000
|
||||
set session innodb_ft_cache_size=1;
|
||||
ERROR HY000: Variable 'innodb_ft_cache_size' is a read only variable
|
||||
ERROR HY000: Variable 'innodb_ft_cache_size' is a GLOBAL variable and should be set with SET GLOBAL
|
||||
set global innodb_ft_cache_size=512*1024*1024;
|
||||
SHOW VARIABLES like 'innodb_ft_cache_size';
|
||||
Variable_name Value
|
||||
innodb_ft_cache_size 536870912
|
||||
set global innodb_ft_cache_size=default;
|
||||
|
|
|
|||
|
|
@ -16,6 +16,15 @@ select * from information_schema.session_variables where variable_name='innodb_f
|
|||
VARIABLE_NAME VARIABLE_VALUE
|
||||
INNODB_FT_TOTAL_CACHE_SIZE 640000000
|
||||
set global innodb_ft_total_cache_size=1;
|
||||
ERROR HY000: Variable 'innodb_ft_total_cache_size' is a read only variable
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect innodb_ft_total_cache_size value: '1'
|
||||
set session innodb_ft_total_cache_size=1;
|
||||
ERROR HY000: Variable 'innodb_ft_total_cache_size' is a read only variable
|
||||
ERROR HY000: Variable 'innodb_ft_total_cache_size' is a GLOBAL variable and should be set with SET GLOBAL
|
||||
SHOW VARIABLES like 'innodb_ft_total_cache_size';
|
||||
Variable_name Value
|
||||
innodb_ft_total_cache_size 32000000
|
||||
set global innodb_ft_total_cache_size=512*1024*1024;
|
||||
show variables like 'innodb_ft_total_cache_size';
|
||||
Variable_name Value
|
||||
innodb_ft_total_cache_size 536870912
|
||||
set global innodb_ft_total_cache_size=default;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
--- sysvars_innodb.result
|
||||
+++ sysvars_innodb,32bit.result
|
||||
@@ -49,7 +49,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 8
|
||||
|
|
@ -18,7 +16,7 @@
|
|||
VARIABLE_COMMENT The AUTOINC lock modes supported by InnoDB: 0 => Old style AUTOINC locking (for backward compatibility); 1 => New style AUTOINC locking; 2 => No AUTOINC locking (unsafe for SBR)
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 2
|
||||
@@ -97,10 +97,10 @@
|
||||
@@ -85,10 +85,10 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 134217728
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -31,7 +29,7 @@
|
|||
NUMERIC_BLOCK_SIZE 1048576
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY YES
|
||||
@@ -133,7 +133,7 @@
|
||||
@@ -121,7 +121,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 25
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -40,7 +38,7 @@
|
|||
VARIABLE_COMMENT Dump only the hottest N% of each buffer pool, defaults to 25
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 100
|
||||
@@ -217,7 +217,7 @@
|
||||
@@ -205,7 +205,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -49,7 +47,7 @@
|
|||
VARIABLE_COMMENT A number between [0, 100] that tells how oftern buffer pool dump status in percentages should be printed. E.g. 10 means that buffer pool dump status is printed when every 10% of number of buffer pool pages are dumped. Default is 0 (only start and end status is printed).
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 100
|
||||
@@ -337,7 +337,7 @@
|
||||
@@ -325,7 +325,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 5
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -58,7 +56,7 @@
|
|||
VARIABLE_COMMENT If the compression failure rate of a table is greater than this number more padding is added to the pages to reduce the failures. A value of zero implies no padding
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 100
|
||||
@@ -361,7 +361,7 @@
|
||||
@@ -349,7 +349,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 50
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -67,7 +65,7 @@
|
|||
VARIABLE_COMMENT Percentage of empty space on a data page that can be reserved to make the page compressible.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 75
|
||||
@@ -661,7 +661,7 @@
|
||||
@@ -649,7 +649,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 600
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -76,7 +74,7 @@
|
|||
VARIABLE_COMMENT Maximum number of seconds that semaphore times out in InnoDB.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 4294967295
|
||||
@@ -709,7 +709,7 @@
|
||||
@@ -697,7 +697,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 30
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -85,7 +83,7 @@
|
|||
VARIABLE_COMMENT Number of iterations over which the background flushing is averaged.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 1000
|
||||
@@ -733,7 +733,7 @@
|
||||
@@ -721,7 +721,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 1
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -94,7 +92,7 @@
|
|||
VARIABLE_COMMENT Controls the durability/speed trade-off for commits. Set to 0 (write and flush redo log to disk only once per second), 1 (flush to disk at each commit), 2 (write to log at commit but flush to disk only once per second) or 3 (flush to disk at prepare and at commit, slower and usually redundant). 1 and 3 guarantees that after a crash, committed transactions will not be lost and will be consistent with the binlog and other transactional engines. 2 can get inconsistent and lose transactions if there is a power failure or kernel crash but not if mysqld crashes. 0 has no guarantees in case of crash. 0 and 2 can be faster than 1 or 3.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 3
|
||||
@@ -757,7 +757,7 @@
|
||||
@@ -745,7 +745,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 1
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -103,7 +101,7 @@
|
|||
VARIABLE_COMMENT Set to 0 (don't flush neighbors from buffer pool), 1 (flush contiguous neighbors from buffer pool) or 2 (flush neighbors from buffer pool), when flushing a block
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 2
|
||||
@@ -805,7 +805,7 @@
|
||||
@@ -781,7 +781,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -112,7 +110,7 @@
|
|||
VARIABLE_COMMENT Helps to save your data in case the disk image of the database becomes corrupt. Value 5 can return bogus data, and 6 can permanently corrupt data.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 6
|
||||
@@ -829,7 +829,7 @@
|
||||
@@ -805,10 +805,10 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 8000000
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -120,8 +118,12 @@
|
|||
+VARIABLE_TYPE INT UNSIGNED
|
||||
VARIABLE_COMMENT InnoDB Fulltext search cache size in bytes
|
||||
NUMERIC_MIN_VALUE 1600000
|
||||
NUMERIC_MAX_VALUE 80000000
|
||||
@@ -865,7 +865,7 @@
|
||||
-NUMERIC_MAX_VALUE 1099511627776
|
||||
+NUMERIC_MAX_VALUE 536870912
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -841,7 +841,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 84
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -130,7 +132,7 @@
|
|||
VARIABLE_COMMENT InnoDB Fulltext search maximum token size in characters
|
||||
NUMERIC_MIN_VALUE 10
|
||||
NUMERIC_MAX_VALUE 84
|
||||
@@ -877,7 +877,7 @@
|
||||
@@ -853,7 +853,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 3
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -139,7 +141,7 @@
|
|||
VARIABLE_COMMENT InnoDB Fulltext search minimum token size in characters
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 16
|
||||
@@ -889,7 +889,7 @@
|
||||
@@ -865,7 +865,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 2000
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -148,7 +150,7 @@
|
|||
VARIABLE_COMMENT InnoDB Fulltext search number of words to optimize for each optimize table call
|
||||
NUMERIC_MIN_VALUE 1000
|
||||
NUMERIC_MAX_VALUE 10000
|
||||
@@ -901,10 +901,10 @@
|
||||
@@ -877,10 +877,10 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 2000000000
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -161,7 +163,7 @@
|
|||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -925,7 +925,7 @@
|
||||
@@ -901,7 +901,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 2
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -170,7 +172,7 @@
|
|||
VARIABLE_COMMENT InnoDB Fulltext search parallel sort degree, will round up to nearest power of 2 number
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 16
|
||||
@@ -937,7 +937,7 @@
|
||||
@@ -913,10 +913,10 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 640000000
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -178,8 +180,12 @@
|
|||
+VARIABLE_TYPE INT UNSIGNED
|
||||
VARIABLE_COMMENT Total memory allocated for InnoDB Fulltext Search cache
|
||||
NUMERIC_MIN_VALUE 32000000
|
||||
NUMERIC_MAX_VALUE 1600000000
|
||||
@@ -985,22 +985,22 @@
|
||||
-NUMERIC_MAX_VALUE 1099511627776
|
||||
+NUMERIC_MAX_VALUE 1600000000
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -961,22 +961,22 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 200
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -207,7 +213,7 @@
|
|||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -1033,10 +1033,10 @@
|
||||
@@ -1009,10 +1009,10 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 16777216
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -220,7 +226,7 @@
|
|||
NUMERIC_BLOCK_SIZE 1024
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY YES
|
||||
@@ -1081,7 +1081,7 @@
|
||||
@@ -1057,7 +1057,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 8192
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -229,7 +235,7 @@
|
|||
VARIABLE_COMMENT Redo log write ahead unit size to avoid read-on-write, it should match the OS cache block IO size
|
||||
NUMERIC_MIN_VALUE 512
|
||||
NUMERIC_MAX_VALUE 16384
|
||||
@@ -1093,10 +1093,10 @@
|
||||
@@ -1069,10 +1069,10 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 32
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -242,7 +248,7 @@
|
|||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -1105,10 +1105,10 @@
|
||||
@@ -1081,10 +1081,10 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 1536
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -255,7 +261,7 @@
|
|||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -1153,10 +1153,10 @@
|
||||
@@ -1129,10 +1129,10 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -268,7 +274,7 @@
|
|||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -1165,7 +1165,7 @@
|
||||
@@ -1141,7 +1141,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -277,7 +283,7 @@
|
|||
VARIABLE_COMMENT Maximum delay of user threads in micro-seconds
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 10000000
|
||||
@@ -1297,10 +1297,10 @@
|
||||
@@ -1273,10 +1273,10 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -290,7 +296,7 @@
|
|||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY YES
|
||||
@@ -1333,7 +1333,7 @@
|
||||
@@ -1309,7 +1309,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 16384
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -299,7 +305,7 @@
|
|||
VARIABLE_COMMENT Page size to use for all InnoDB tablespaces.
|
||||
NUMERIC_MIN_VALUE 4096
|
||||
NUMERIC_MAX_VALUE 65536
|
||||
@@ -1369,7 +1369,7 @@
|
||||
@@ -1345,7 +1345,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 300
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -308,7 +314,7 @@
|
|||
VARIABLE_COMMENT Number of UNDO log pages to purge in one batch from the history list.
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 5000
|
||||
@@ -1381,7 +1381,7 @@
|
||||
@@ -1357,7 +1357,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 128
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -317,7 +323,7 @@
|
|||
VARIABLE_COMMENT Dictates rate at which UNDO records are purged. Value N means purge rollback segment(s) on every Nth iteration of purge invocation
|
||||
NUMERIC_MIN_VALUE 1
|
||||
NUMERIC_MAX_VALUE 128
|
||||
@@ -1417,7 +1417,7 @@
|
||||
@@ -1393,7 +1393,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 56
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -326,7 +332,7 @@
|
|||
VARIABLE_COMMENT Number of pages that must be accessed sequentially for InnoDB to trigger a readahead.
|
||||
NUMERIC_MIN_VALUE 0
|
||||
NUMERIC_MAX_VALUE 64
|
||||
@@ -1501,7 +1501,7 @@
|
||||
@@ -1465,7 +1465,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 1048576
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -335,7 +341,7 @@
|
|||
VARIABLE_COMMENT Memory buffer size for index creation
|
||||
NUMERIC_MIN_VALUE 65536
|
||||
NUMERIC_MAX_VALUE 67108864
|
||||
@@ -1669,10 +1669,10 @@
|
||||
@@ -1633,10 +1633,10 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 30
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
@ -348,7 +354,7 @@
|
|||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY NO
|
||||
@@ -1765,7 +1765,7 @@
|
||||
@@ -1729,7 +1729,7 @@
|
||||
SESSION_VALUE NULL
|
||||
DEFAULT_VALUE 0
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
|
|||
|
|
@ -808,10 +808,10 @@ VARIABLE_SCOPE GLOBAL
|
|||
VARIABLE_TYPE BIGINT UNSIGNED
|
||||
VARIABLE_COMMENT InnoDB Fulltext search cache size in bytes
|
||||
NUMERIC_MIN_VALUE 1600000
|
||||
NUMERIC_MAX_VALUE 80000000
|
||||
NUMERIC_MAX_VALUE 1099511627776
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY YES
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT REQUIRED
|
||||
VARIABLE_NAME INNODB_FT_ENABLE_DIAG_PRINT
|
||||
SESSION_VALUE NULL
|
||||
|
|
@ -916,10 +916,10 @@ VARIABLE_SCOPE GLOBAL
|
|||
VARIABLE_TYPE BIGINT UNSIGNED
|
||||
VARIABLE_COMMENT Total memory allocated for InnoDB Fulltext Search cache
|
||||
NUMERIC_MIN_VALUE 32000000
|
||||
NUMERIC_MAX_VALUE 1600000000
|
||||
NUMERIC_MAX_VALUE 1099511627776
|
||||
NUMERIC_BLOCK_SIZE 0
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY YES
|
||||
READ_ONLY NO
|
||||
COMMAND_LINE_ARGUMENT REQUIRED
|
||||
VARIABLE_NAME INNODB_FT_USER_STOPWORD_TABLE
|
||||
SESSION_VALUE
|
||||
|
|
|
|||
|
|
@ -18,11 +18,12 @@ select * from information_schema.global_variables where variable_name='innodb_ft
|
|||
select * from information_schema.session_variables where variable_name='innodb_ft_cache_size';
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
# show that it's read-only
|
||||
#
|
||||
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
||||
set global innodb_ft_cache_size=1;
|
||||
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
||||
SHOW VARIABLES like 'innodb_ft_cache_size';
|
||||
|
||||
--error ER_GLOBAL_VARIABLE
|
||||
set session innodb_ft_cache_size=1;
|
||||
|
||||
set global innodb_ft_cache_size=512*1024*1024;
|
||||
SHOW VARIABLES like 'innodb_ft_cache_size';
|
||||
set global innodb_ft_cache_size=default;
|
||||
|
|
|
|||
|
|
@ -18,11 +18,11 @@ select * from information_schema.global_variables where variable_name='innodb_ft
|
|||
select * from information_schema.session_variables where variable_name='innodb_ft_total_cache_size';
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
# show that it's read-only
|
||||
#
|
||||
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
||||
set global innodb_ft_total_cache_size=1;
|
||||
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
||||
--error ER_GLOBAL_VARIABLE
|
||||
set session innodb_ft_total_cache_size=1;
|
||||
|
||||
SHOW VARIABLES like 'innodb_ft_total_cache_size';
|
||||
set global innodb_ft_total_cache_size=512*1024*1024;
|
||||
show variables like 'innodb_ft_total_cache_size';
|
||||
set global innodb_ft_total_cache_size=default;
|
||||
|
|
|
|||
|
|
@ -52,14 +52,14 @@ by looking up the key word in the obsolete table names */
|
|||
|
||||
/** This is maximum FTS cache for each table and would be
|
||||
a configurable variable */
|
||||
ulong fts_max_cache_size;
|
||||
Atomic_relaxed<size_t> fts_max_cache_size;
|
||||
|
||||
/** Whether the total memory used for FTS cache is exhausted, and we will
|
||||
need a sync to free some memory */
|
||||
bool fts_need_sync = false;
|
||||
|
||||
/** Variable specifying the total memory allocated for FTS cache */
|
||||
ulong fts_max_total_cache_size;
|
||||
Atomic_relaxed<size_t> fts_max_total_cache_size;
|
||||
|
||||
/** This is FTS result cache limit for each query and would be
|
||||
a configurable variable */
|
||||
|
|
@ -4219,11 +4219,17 @@ fts_sync(
|
|||
fts_sync_begin(sync);
|
||||
|
||||
begin_sync:
|
||||
if (cache->total_size > fts_max_cache_size) {
|
||||
const size_t fts_cache_size= fts_max_cache_size;
|
||||
if (cache->total_size > fts_cache_size) {
|
||||
/* Avoid the case: sync never finish when
|
||||
insert/update keeps comming. */
|
||||
ut_ad(sync->unlock_cache);
|
||||
sync->unlock_cache = false;
|
||||
ib::warn() << "Total InnoDB FTS size "
|
||||
<< cache->total_size << " for the table "
|
||||
<< cache->sync->table->name
|
||||
<< " exceeds the innodb_ft_cache_size "
|
||||
<< fts_cache_size;
|
||||
}
|
||||
|
||||
for (i = 0; i < ib_vector_size(cache->indexes); ++i) {
|
||||
|
|
@ -4244,6 +4250,13 @@ begin_sync:
|
|||
if (error != DB_SUCCESS) {
|
||||
goto end_sync;
|
||||
}
|
||||
|
||||
if (!sync->unlock_cache
|
||||
&& cache->total_size < fts_max_cache_size) {
|
||||
/* Reset the unlock cache if the value
|
||||
is less than innodb_ft_cache_size */
|
||||
sync->unlock_cache = true;
|
||||
}
|
||||
}
|
||||
|
||||
DBUG_EXECUTE_IF("fts_instrument_sync_interrupted",
|
||||
|
|
|
|||
|
|
@ -706,6 +706,18 @@ innodb_stopword_table_validate(
|
|||
for update function */
|
||||
struct st_mysql_value* value); /*!< in: incoming string */
|
||||
|
||||
static
|
||||
void innodb_ft_cache_size_update(THD*, st_mysql_sys_var*, void*, const void* save)
|
||||
{
|
||||
fts_max_cache_size= *static_cast<const size_t*>(save);
|
||||
}
|
||||
|
||||
static
|
||||
void innodb_ft_total_cache_size_update(THD*, st_mysql_sys_var*, void*, const void* save)
|
||||
{
|
||||
fts_max_total_cache_size= *static_cast<const size_t*>(save);
|
||||
}
|
||||
|
||||
static bool is_mysql_datadir_path(const char *path);
|
||||
|
||||
/** Validate passed-in "value" is a valid directory name.
|
||||
|
|
@ -19253,15 +19265,35 @@ static MYSQL_SYSVAR_STR(ft_aux_table, innodb_ft_aux_table,
|
|||
"FTS internal auxiliary table to be checked",
|
||||
innodb_ft_aux_table_validate, NULL, NULL);
|
||||
|
||||
static MYSQL_SYSVAR_ULONG(ft_cache_size, fts_max_cache_size,
|
||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||
"InnoDB Fulltext search cache size in bytes",
|
||||
NULL, NULL, 8000000, 1600000, 80000000, 0);
|
||||
#if UNIV_WORD_SIZE == 4
|
||||
|
||||
static MYSQL_SYSVAR_ULONG(ft_total_cache_size, fts_max_total_cache_size,
|
||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||
static MYSQL_SYSVAR_SIZE_T(ft_cache_size,
|
||||
*reinterpret_cast<size_t*>(&fts_max_cache_size),
|
||||
PLUGIN_VAR_RQCMDARG,
|
||||
"InnoDB Fulltext search cache size in bytes",
|
||||
NULL, innodb_ft_cache_size_update, 8000000, 1600000, 1U << 29, 0);
|
||||
|
||||
static MYSQL_SYSVAR_SIZE_T(ft_total_cache_size,
|
||||
*reinterpret_cast<size_t*>(&fts_max_total_cache_size),
|
||||
PLUGIN_VAR_RQCMDARG,
|
||||
"Total memory allocated for InnoDB Fulltext Search cache",
|
||||
NULL, NULL, 640000000, 32000000, 1600000000, 0);
|
||||
NULL, innodb_ft_total_cache_size_update, 640000000, 32000000, 1600000000, 0);
|
||||
|
||||
#else
|
||||
|
||||
static MYSQL_SYSVAR_SIZE_T(ft_cache_size,
|
||||
*reinterpret_cast<size_t*>(&fts_max_cache_size),
|
||||
PLUGIN_VAR_RQCMDARG,
|
||||
"InnoDB Fulltext search cache size in bytes",
|
||||
NULL, innodb_ft_cache_size_update, 8000000, 1600000, 1ULL << 40, 0);
|
||||
|
||||
static MYSQL_SYSVAR_SIZE_T(ft_total_cache_size,
|
||||
*reinterpret_cast<size_t*>(&fts_max_total_cache_size),
|
||||
PLUGIN_VAR_RQCMDARG,
|
||||
"Total memory allocated for InnoDB Fulltext Search cache",
|
||||
NULL, innodb_ft_total_cache_size_update, 640000000, 32000000, 1ULL << 40, 0);
|
||||
|
||||
#endif
|
||||
|
||||
static MYSQL_SYSVAR_SIZE_T(ft_result_cache_limit, fts_result_cache_limit,
|
||||
PLUGIN_VAR_RQCMDARG,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 2011, 2018, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 2016, 2021, MariaDB Corporation.
|
||||
Copyright (c) 2016, 2022, MariaDB Corporation.
|
||||
|
||||
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
|
||||
|
|
@ -355,10 +355,10 @@ struct fts_stopword_t;
|
|||
extern const char* fts_default_stopword[];
|
||||
|
||||
/** Variable specifying the maximum FTS cache size for each table */
|
||||
extern ulong fts_max_cache_size;
|
||||
extern Atomic_relaxed<size_t> fts_max_cache_size;
|
||||
|
||||
/** Variable specifying the total memory allocated for FTS cache */
|
||||
extern ulong fts_max_total_cache_size;
|
||||
extern Atomic_relaxed<size_t> fts_max_total_cache_size;
|
||||
|
||||
/** Variable specifying the FTS result cache limit for each query */
|
||||
extern size_t fts_result_cache_limit;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue