Merge branch '10.2' into 10.3
This commit is contained in:
commit
58b70dc136
@ -105,6 +105,8 @@ SET(ignored
|
|||||||
"%ignore /etc/systemd/system"
|
"%ignore /etc/systemd/system"
|
||||||
"%ignore /lib"
|
"%ignore /lib"
|
||||||
"%ignore /lib/security"
|
"%ignore /lib/security"
|
||||||
|
"%ignore /lib64"
|
||||||
|
"%ignore /lib64/security"
|
||||||
"%ignore ${CMAKE_INSTALL_PREFIX}"
|
"%ignore ${CMAKE_INSTALL_PREFIX}"
|
||||||
"%ignore ${CMAKE_INSTALL_PREFIX}/bin"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/bin"
|
||||||
"%ignore ${CMAKE_INSTALL_PREFIX}/include"
|
"%ignore ${CMAKE_INSTALL_PREFIX}/include"
|
||||||
|
@ -163,7 +163,7 @@ SET(INSTALL_UNIX_ADDRDIR_RPM "${INSTALL_MYSQLDATADIR_RPM}/mysql.sock"
|
|||||||
SET(INSTALL_SYSTEMD_UNITDIR_RPM "/usr/lib/systemd/system")
|
SET(INSTALL_SYSTEMD_UNITDIR_RPM "/usr/lib/systemd/system")
|
||||||
SET(INSTALL_SYSTEMD_SYSUSERSDIR_RPM "/usr/lib/sysusers.d")
|
SET(INSTALL_SYSTEMD_SYSUSERSDIR_RPM "/usr/lib/sysusers.d")
|
||||||
SET(INSTALL_SYSTEMD_TMPFILESDIR_RPM "/usr/lib/tmpfiles.d")
|
SET(INSTALL_SYSTEMD_TMPFILESDIR_RPM "/usr/lib/tmpfiles.d")
|
||||||
SET(INSTALL_PAMDIR_RPM "/lib/security")
|
SET(INSTALL_PAMDIR_RPM "/${INSTALL_LIBDIR_RPM}/security")
|
||||||
|
|
||||||
#
|
#
|
||||||
# DEB layout
|
# DEB layout
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/mysql-test/r/mysqld--help.result
|
--- a/mysql-test/r/mysqld--help.result
|
||||||
+++ b/mysql-test/r/mysqld--help.result
|
+++ b/mysql-test/r/mysqld--help.result
|
||||||
@@ -381,7 +381,6 @@ The following options may be given as the first argument:
|
@@ -395,7 +395,6 @@
|
||||||
The number of segments in a key cache
|
The number of segments in a key cache
|
||||||
-L, --language=name Client error messages in given language. May be given as
|
-L, --language=name Client error messages in given language. May be given as
|
||||||
a full path. Deprecated. Use --lc-messages-dir instead.
|
a full path. Deprecated. Use --lc-messages-dir instead.
|
||||||
@ -8,7 +8,7 @@
|
|||||||
--lc-messages=name Set the language used for the error messages.
|
--lc-messages=name Set the language used for the error messages.
|
||||||
-L, --lc-messages-dir=name
|
-L, --lc-messages-dir=name
|
||||||
Directory where error messages are
|
Directory where error messages are
|
||||||
@@ -603,6 +602,7 @@ The following options may be given as the first argument:
|
@@ -617,6 +616,7 @@
|
||||||
Use MySQL-5.6 (instead of MariaDB-5.3) format for TIME,
|
Use MySQL-5.6 (instead of MariaDB-5.3) format for TIME,
|
||||||
DATETIME, TIMESTAMP columns.
|
DATETIME, TIMESTAMP columns.
|
||||||
(Defaults to on; use --skip-mysql56-temporal-format to disable.)
|
(Defaults to on; use --skip-mysql56-temporal-format to disable.)
|
||||||
@ -16,7 +16,7 @@
|
|||||||
--net-buffer-length=#
|
--net-buffer-length=#
|
||||||
Buffer length for TCP/IP and socket communication
|
Buffer length for TCP/IP and socket communication
|
||||||
--net-read-timeout=#
|
--net-read-timeout=#
|
||||||
@@ -1048,6 +1048,9 @@ The following options may be given as the first argument:
|
@@ -1073,6 +1073,9 @@
|
||||||
characteristics (isolation level, read only/read
|
characteristics (isolation level, read only/read
|
||||||
write,snapshot - but not any work done / data modified
|
write,snapshot - but not any work done / data modified
|
||||||
within the transaction).
|
within the transaction).
|
||||||
@ -26,7 +26,7 @@
|
|||||||
--show-slave-auth-info
|
--show-slave-auth-info
|
||||||
Show user and password in SHOW SLAVE HOSTS on this
|
Show user and password in SHOW SLAVE HOSTS on this
|
||||||
master.
|
master.
|
||||||
@@ -1171,6 +1174,10 @@ The following options may be given as the first argument:
|
@@ -1196,6 +1199,10 @@
|
||||||
Log slow queries to given log file. Defaults logging to
|
Log slow queries to given log file. Defaults logging to
|
||||||
'hostname'-slow.log. Must be enabled to activate other
|
'hostname'-slow.log. Must be enabled to activate other
|
||||||
slow log options
|
slow log options
|
||||||
@ -37,15 +37,15 @@
|
|||||||
--socket=name Socket file to use for connection
|
--socket=name Socket file to use for connection
|
||||||
--sort-buffer-size=#
|
--sort-buffer-size=#
|
||||||
Each thread that needs to do a sort allocates a buffer of
|
Each thread that needs to do a sort allocates a buffer of
|
||||||
@@ -1190,6 +1197,7 @@ The following options may be given as the first argument:
|
@@ -1219,6 +1226,7 @@
|
||||||
EMPTY_STRING_IS_NULL, SIMULTANEOUS_ASSIGNMENT
|
deleting or updating every row in a table.
|
||||||
--stack-trace Print a symbolic stack trace on failure
|
--stack-trace Print a symbolic stack trace on failure
|
||||||
(Defaults to on; use --skip-stack-trace to disable.)
|
(Defaults to on; use --skip-stack-trace to disable.)
|
||||||
+ --standalone Dummy option to start as a standalone program (NT).
|
+ --standalone Dummy option to start as a standalone program (NT).
|
||||||
--standard-compliant-cte
|
--standard-compliant-cte
|
||||||
Allow only CTEs compliant to SQL standard
|
Allow only CTEs compliant to SQL standard
|
||||||
(Defaults to on; use --skip-standard-compliant-cte to disable.)
|
(Defaults to on; use --skip-standard-compliant-cte to disable.)
|
||||||
@@ -1257,6 +1265,11 @@ The following options may be given as the first argument:
|
@@ -1286,6 +1294,11 @@
|
||||||
--thread-pool-max-threads=#
|
--thread-pool-max-threads=#
|
||||||
Maximum allowed number of worker threads in the thread
|
Maximum allowed number of worker threads in the thread
|
||||||
pool
|
pool
|
||||||
@ -57,7 +57,7 @@
|
|||||||
--thread-pool-oversubscribe=#
|
--thread-pool-oversubscribe=#
|
||||||
How many additional active worker threads in a group are
|
How many additional active worker threads in a group are
|
||||||
allowed.
|
allowed.
|
||||||
@@ -1295,8 +1308,8 @@ The following options may be given as the first argument:
|
@@ -1324,8 +1337,8 @@
|
||||||
automatically convert it to an on-disk MyISAM or Aria
|
automatically convert it to an on-disk MyISAM or Aria
|
||||||
table.
|
table.
|
||||||
-t, --tmpdir=name Path for temporary files. Several paths may be specified,
|
-t, --tmpdir=name Path for temporary files. Several paths may be specified,
|
||||||
@ -68,7 +68,7 @@
|
|||||||
--transaction-alloc-block-size=#
|
--transaction-alloc-block-size=#
|
||||||
Allocation block size for transactions to be stored in
|
Allocation block size for transactions to be stored in
|
||||||
binary log
|
binary log
|
||||||
@@ -1430,7 +1443,6 @@ key-cache-block-size 1024
|
@@ -1462,7 +1475,6 @@
|
||||||
key-cache-division-limit 100
|
key-cache-division-limit 100
|
||||||
key-cache-file-hash-size 512
|
key-cache-file-hash-size 512
|
||||||
key-cache-segments 0
|
key-cache-segments 0
|
||||||
@ -76,7 +76,7 @@
|
|||||||
lc-messages en_US
|
lc-messages en_US
|
||||||
lc-messages-dir MYSQL_SHAREDIR/
|
lc-messages-dir MYSQL_SHAREDIR/
|
||||||
lc-time-names en_US
|
lc-time-names en_US
|
||||||
@@ -1502,6 +1514,7 @@ myisam-sort-buffer-size 134216704
|
@@ -1534,6 +1546,7 @@
|
||||||
myisam-stats-method NULLS_UNEQUAL
|
myisam-stats-method NULLS_UNEQUAL
|
||||||
myisam-use-mmap FALSE
|
myisam-use-mmap FALSE
|
||||||
mysql56-temporal-format TRUE
|
mysql56-temporal-format TRUE
|
||||||
@ -84,7 +84,7 @@
|
|||||||
net-buffer-length 16384
|
net-buffer-length 16384
|
||||||
net-read-timeout 30
|
net-read-timeout 30
|
||||||
net-retry-count 10
|
net-retry-count 10
|
||||||
@@ -1612,6 +1625,8 @@ session-track-schema TRUE
|
@@ -1645,6 +1658,8 @@
|
||||||
session-track-state-change FALSE
|
session-track-state-change FALSE
|
||||||
session-track-system-variables autocommit,character_set_client,character_set_connection,character_set_results,time_zone
|
session-track-system-variables autocommit,character_set_client,character_set_connection,character_set_results,time_zone
|
||||||
session-track-transaction-info OFF
|
session-track-transaction-info OFF
|
||||||
@ -93,15 +93,15 @@
|
|||||||
show-slave-auth-info FALSE
|
show-slave-auth-info FALSE
|
||||||
silent-startup FALSE
|
silent-startup FALSE
|
||||||
skip-grant-tables TRUE
|
skip-grant-tables TRUE
|
||||||
@@ -1638,6 +1653,7 @@ slave-transaction-retry-interval 0
|
@@ -1671,6 +1686,7 @@
|
||||||
slave-type-conversions
|
slave-type-conversions
|
||||||
slow-launch-time 2
|
slow-launch-time 2
|
||||||
slow-query-log FALSE
|
slow-query-log FALSE
|
||||||
+slow-start-timeout 15000
|
+slow-start-timeout 15000
|
||||||
sort-buffer-size 2097152
|
sort-buffer-size 2097152
|
||||||
sql-mode STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
|
sql-mode STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
|
||||||
stack-trace TRUE
|
sql-safe-updates FALSE
|
||||||
@@ -1652,9 +1668,9 @@ sync-relay-log 10000
|
@@ -1686,10 +1702,10 @@
|
||||||
sync-relay-log-info 10000
|
sync-relay-log-info 10000
|
||||||
sysdate-is-now FALSE
|
sysdate-is-now FALSE
|
||||||
system-versioning-alter-history ERROR
|
system-versioning-alter-history ERROR
|
||||||
@ -109,11 +109,13 @@
|
|||||||
+table-cache 2000
|
+table-cache 2000
|
||||||
table-definition-cache 400
|
table-definition-cache 400
|
||||||
-table-open-cache 421
|
-table-open-cache 421
|
||||||
|
-table-open-cache-instances 1
|
||||||
+table-open-cache 2000
|
+table-open-cache 2000
|
||||||
table-open-cache-instances 8
|
+table-open-cache-instances 8
|
||||||
tc-heuristic-recover OFF
|
tc-heuristic-recover OFF
|
||||||
tcp-keepalive-interval 0
|
tcp-keepalive-interval 0
|
||||||
@@ -1663,6 +1679,8 @@ tcp-keepalive-time 0
|
tcp-keepalive-probes 0
|
||||||
|
@@ -1697,6 +1713,8 @@
|
||||||
thread-cache-size 151
|
thread-cache-size 151
|
||||||
thread-pool-idle-timeout 60
|
thread-pool-idle-timeout 60
|
||||||
thread-pool-max-threads 65536
|
thread-pool-max-threads 65536
|
||||||
|
@ -1689,7 +1689,7 @@ system-versioning-alter-history ERROR
|
|||||||
table-cache 421
|
table-cache 421
|
||||||
table-definition-cache 400
|
table-definition-cache 400
|
||||||
table-open-cache 421
|
table-open-cache 421
|
||||||
table-open-cache-instances 8
|
table-open-cache-instances 1
|
||||||
tc-heuristic-recover OFF
|
tc-heuristic-recover OFF
|
||||||
tcp-keepalive-interval 0
|
tcp-keepalive-interval 0
|
||||||
tcp-keepalive-probes 0
|
tcp-keepalive-probes 0
|
||||||
|
@ -4732,8 +4732,8 @@ sub extract_warning_lines ($$) {
|
|||||||
qr/InnoDB: See also */,
|
qr/InnoDB: See also */,
|
||||||
qr/InnoDB: Cannot open .*ib_buffer_pool.* for reading: No such file or directory*/,
|
qr/InnoDB: Cannot open .*ib_buffer_pool.* for reading: No such file or directory*/,
|
||||||
qr/InnoDB: Table .*mysql.*innodb_table_stats.* not found./,
|
qr/InnoDB: Table .*mysql.*innodb_table_stats.* not found./,
|
||||||
qr/InnoDB: User stopword table .* does not exist./
|
qr/InnoDB: User stopword table .* does not exist./,
|
||||||
|
qr/Detected table cache mutex contention at instance .* waits. Additional table cache instance cannot be activated: consider raising table_open_cache_instances. Number of active instances/
|
||||||
);
|
);
|
||||||
|
|
||||||
my $matched_lines= [];
|
my $matched_lines= [];
|
||||||
|
@ -153,3 +153,9 @@ a
|
|||||||
SELECT * FROM t2;
|
SELECT * FROM t2;
|
||||||
a
|
a
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
|
CREATE TABLE t1(f1 INT PRIMARY KEY, f2 TEXT)ENGINE=InnoDB
|
||||||
|
ROW_FORMAT=REDUNDANT;
|
||||||
|
SET @fill_amount = (@@innodb_page_size / 2 ) + 1 ;
|
||||||
|
INSERT INTO t1 VALUES(1, REPEAT(2, @fill_amount));
|
||||||
|
UPDATE t1 SET f1 = 2;
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -206,3 +206,10 @@ SELECT a FROM t3;
|
|||||||
SELECT * FROM t2;
|
SELECT * FROM t2;
|
||||||
|
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
|
|
||||||
|
CREATE TABLE t1(f1 INT PRIMARY KEY, f2 TEXT)ENGINE=InnoDB
|
||||||
|
ROW_FORMAT=REDUNDANT;
|
||||||
|
SET @fill_amount = (@@innodb_page_size / 2 ) + 1 ;
|
||||||
|
INSERT INTO t1 VALUES(1, REPEAT(2, @fill_amount));
|
||||||
|
UPDATE t1 SET f1 = 2;
|
||||||
|
DROP TABLE t1;
|
||||||
|
6
mysql-test/suite/innodb_fts/r/misc_debug2.result
Normal file
6
mysql-test/suite/innodb_fts/r/misc_debug2.result
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
call mtr.add_suppression("InnoDB: Tablespace for table .* is set as discarded");
|
||||||
|
CREATE TABLE mdev21563(f1 VARCHAR(100), FULLTEXT idx(f1))ENGINE=InnoDB;
|
||||||
|
set debug_dbug="+d,fts_instrument_sync_request";
|
||||||
|
INSERT INTO mdev21563 VALUES('This is a test');
|
||||||
|
ALTER TABLE mdev21563 DISCARD TABLESPACE;
|
||||||
|
DROP TABLE mdev21563;
|
11
mysql-test/suite/innodb_fts/t/misc_debug2.test
Normal file
11
mysql-test/suite/innodb_fts/t/misc_debug2.test
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--source include/have_innodb.inc
|
||||||
|
--source include/have_debug.inc
|
||||||
|
--source include/not_embedded.inc
|
||||||
|
call mtr.add_suppression("InnoDB: Tablespace for table .* is set as discarded");
|
||||||
|
|
||||||
|
CREATE TABLE mdev21563(f1 VARCHAR(100), FULLTEXT idx(f1))ENGINE=InnoDB;
|
||||||
|
set debug_dbug="+d,fts_instrument_sync_request";
|
||||||
|
INSERT INTO mdev21563 VALUES('This is a test');
|
||||||
|
ALTER TABLE mdev21563 DISCARD TABLESPACE;
|
||||||
|
--source include/restart_mysqld.inc
|
||||||
|
DROP TABLE mdev21563;
|
@ -1,3 +1,3 @@
|
|||||||
select @@global.host_cache_size;
|
select @@global.host_cache_size;
|
||||||
@@global.host_cache_size
|
@@global.host_cache_size
|
||||||
632
|
653
|
||||||
|
@ -4495,7 +4495,7 @@ static int init_common_variables()
|
|||||||
min_connections= 10;
|
min_connections= 10;
|
||||||
/* MyISAM requires two file handles per table. */
|
/* MyISAM requires two file handles per table. */
|
||||||
wanted_files= (extra_files + max_connections + extra_max_connections +
|
wanted_files= (extra_files + max_connections + extra_max_connections +
|
||||||
tc_size * 2);
|
tc_size * 2 * tc_instances);
|
||||||
#if defined(HAVE_POOL_OF_THREADS) && !defined(__WIN__)
|
#if defined(HAVE_POOL_OF_THREADS) && !defined(__WIN__)
|
||||||
// add epoll or kevent fd for each threadpool group, in case pool of threads is used
|
// add epoll or kevent fd for each threadpool group, in case pool of threads is used
|
||||||
wanted_files+= (thread_handling > SCHEDULER_NO_THREADS) ? 0 : threadpool_size;
|
wanted_files+= (thread_handling > SCHEDULER_NO_THREADS) ? 0 : threadpool_size;
|
||||||
@ -4524,6 +4524,14 @@ static int init_common_variables()
|
|||||||
if (files < wanted_files && global_system_variables.log_warnings)
|
if (files < wanted_files && global_system_variables.log_warnings)
|
||||||
sql_print_warning("Could not increase number of max_open_files to more than %u (request: %u)", files, wanted_files);
|
sql_print_warning("Could not increase number of max_open_files to more than %u (request: %u)", files, wanted_files);
|
||||||
|
|
||||||
|
/* If we required too much tc_instances than we reduce */
|
||||||
|
SYSVAR_AUTOSIZE_IF_CHANGED(tc_instances,
|
||||||
|
(uint32) MY_MIN(MY_MAX((files - extra_files -
|
||||||
|
max_connections)/
|
||||||
|
2/tc_size,
|
||||||
|
1),
|
||||||
|
tc_instances),
|
||||||
|
uint32);
|
||||||
/*
|
/*
|
||||||
If we have requested too much file handles than we bring
|
If we have requested too much file handles than we bring
|
||||||
max_connections in supported bounds. Still leave at least
|
max_connections in supported bounds. Still leave at least
|
||||||
@ -4531,7 +4539,7 @@ static int init_common_variables()
|
|||||||
*/
|
*/
|
||||||
SYSVAR_AUTOSIZE_IF_CHANGED(max_connections,
|
SYSVAR_AUTOSIZE_IF_CHANGED(max_connections,
|
||||||
(ulong) MY_MAX(MY_MIN(files- extra_files-
|
(ulong) MY_MAX(MY_MIN(files- extra_files-
|
||||||
min_tc_size*2,
|
min_tc_size*2*tc_instances,
|
||||||
max_connections),
|
max_connections),
|
||||||
min_connections),
|
min_connections),
|
||||||
ulong);
|
ulong);
|
||||||
@ -4544,7 +4552,7 @@ static int init_common_variables()
|
|||||||
*/
|
*/
|
||||||
SYSVAR_AUTOSIZE_IF_CHANGED(tc_size,
|
SYSVAR_AUTOSIZE_IF_CHANGED(tc_size,
|
||||||
(ulong) MY_MIN(MY_MAX((files - extra_files -
|
(ulong) MY_MIN(MY_MAX((files - extra_files -
|
||||||
max_connections) / 2,
|
max_connections) / 2 / tc_instances,
|
||||||
min_tc_size),
|
min_tc_size),
|
||||||
tc_size), ulong);
|
tc_size), ulong);
|
||||||
DBUG_PRINT("warning",
|
DBUG_PRINT("warning",
|
||||||
|
@ -1858,7 +1858,6 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
|
|||||||
while (!thd->killed && (parser_state.m_lip.found_semicolon != NULL) &&
|
while (!thd->killed && (parser_state.m_lip.found_semicolon != NULL) &&
|
||||||
! thd->is_error())
|
! thd->is_error())
|
||||||
{
|
{
|
||||||
thd->get_stmt_da()->set_skip_flush();
|
|
||||||
/*
|
/*
|
||||||
Multiple queries exist, execute them individually
|
Multiple queries exist, execute them individually
|
||||||
*/
|
*/
|
||||||
|
@ -4251,7 +4251,6 @@ bool check_column_name(const char *name)
|
|||||||
been opened.
|
been opened.
|
||||||
|
|
||||||
@param[in] table The table to check
|
@param[in] table The table to check
|
||||||
@param[in] table_f_count Expected number of columns in the table
|
|
||||||
@param[in] table_def Expected structure of the table (column name
|
@param[in] table_def Expected structure of the table (column name
|
||||||
and type)
|
and type)
|
||||||
|
|
||||||
|
@ -2253,8 +2253,8 @@ buf_page_realloc(
|
|||||||
ut_d(block->page.in_page_hash = FALSE);
|
ut_d(block->page.in_page_hash = FALSE);
|
||||||
ulint fold = block->page.id.fold();
|
ulint fold = block->page.id.fold();
|
||||||
ut_ad(fold == new_block->page.id.fold());
|
ut_ad(fold == new_block->page.id.fold());
|
||||||
HASH_DELETE(buf_page_t, hash, buf_pool->page_hash, fold, (&block->page));
|
HASH_REPLACE(buf_page_t, hash, buf_pool->page_hash, fold,
|
||||||
HASH_INSERT(buf_page_t, hash, buf_pool->page_hash, fold, (&new_block->page));
|
&block->page, &new_block->page);
|
||||||
|
|
||||||
ut_ad(new_block->page.in_page_hash);
|
ut_ad(new_block->page.in_page_hash);
|
||||||
|
|
||||||
@ -3372,8 +3372,8 @@ buf_relocate(
|
|||||||
/* relocate buf_pool->page_hash */
|
/* relocate buf_pool->page_hash */
|
||||||
ulint fold = bpage->id.fold();
|
ulint fold = bpage->id.fold();
|
||||||
ut_ad(fold == dpage->id.fold());
|
ut_ad(fold == dpage->id.fold());
|
||||||
HASH_DELETE(buf_page_t, hash, buf_pool->page_hash, fold, bpage);
|
HASH_REPLACE(buf_page_t, hash, buf_pool->page_hash, fold, bpage,
|
||||||
HASH_INSERT(buf_page_t, hash, buf_pool->page_hash, fold, dpage);
|
dpage);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Hazard Pointer implementation. */
|
/** Hazard Pointer implementation. */
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
|
||||||
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||||
Copyright (c) 2017, 2019, MariaDB Corporation.
|
Copyright (c) 2017, 2020, 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
|
||||||
@ -59,6 +59,7 @@ static const ulint BUF_LRU_OLD_TOLERANCE = 20;
|
|||||||
@see buf_LRU_old_adjust_len */
|
@see buf_LRU_old_adjust_len */
|
||||||
#define BUF_LRU_NON_OLD_MIN_LEN 5
|
#define BUF_LRU_NON_OLD_MIN_LEN 5
|
||||||
|
|
||||||
|
#ifdef BTR_CUR_HASH_ADAPT
|
||||||
/** When dropping the search hash index entries before deleting an ibd
|
/** When dropping the search hash index entries before deleting an ibd
|
||||||
file, we build a local array of pages belonging to that tablespace
|
file, we build a local array of pages belonging to that tablespace
|
||||||
in the buffer pool. Following is the size of that array.
|
in the buffer pool. Following is the size of that array.
|
||||||
@ -67,6 +68,7 @@ flush_list when dropping a table. This is to ensure that other threads
|
|||||||
are not blocked for extended period of time when using very large
|
are not blocked for extended period of time when using very large
|
||||||
buffer pools. */
|
buffer pools. */
|
||||||
static const ulint BUF_LRU_DROP_SEARCH_SIZE = 1024;
|
static const ulint BUF_LRU_DROP_SEARCH_SIZE = 1024;
|
||||||
|
#endif /* BTR_CUR_HASH_ADAPT */
|
||||||
|
|
||||||
/** We scan these many blocks when looking for a clean page to evict
|
/** We scan these many blocks when looking for a clean page to evict
|
||||||
during LRU eviction. */
|
during LRU eviction. */
|
||||||
@ -376,7 +378,6 @@ drop_ahi:
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
#endif /* BTR_CUR_HASH_ADAPT */
|
|
||||||
|
|
||||||
/******************************************************************//**
|
/******************************************************************//**
|
||||||
While flushing (or removing dirty) pages from a tablespace we don't
|
While flushing (or removing dirty) pages from a tablespace we don't
|
||||||
@ -465,6 +466,7 @@ buf_flush_try_yield(
|
|||||||
|
|
||||||
return(false);
|
return(false);
|
||||||
}
|
}
|
||||||
|
#endif /* BTR_CUR_HASH_ADAPT */
|
||||||
|
|
||||||
/******************************************************************//**
|
/******************************************************************//**
|
||||||
Removes a single page from a given tablespace inside a specific
|
Removes a single page from a given tablespace inside a specific
|
||||||
@ -640,6 +642,7 @@ rescan:
|
|||||||
goto rescan;
|
goto rescan;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef BTR_CUR_HASH_ADAPT
|
||||||
++processed;
|
++processed;
|
||||||
|
|
||||||
/* Yield if we have hogged the CPU and mutexes for too long. */
|
/* Yield if we have hogged the CPU and mutexes for too long. */
|
||||||
@ -649,6 +652,7 @@ rescan:
|
|||||||
|
|
||||||
processed = 0;
|
processed = 0;
|
||||||
}
|
}
|
||||||
|
#endif /* BTR_CUR_HASH_ADAPT */
|
||||||
|
|
||||||
/* The check for trx is interrupted is expensive, we want
|
/* The check for trx is interrupted is expensive, we want
|
||||||
to check every N iterations. */
|
to check every N iterations. */
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
|
||||||
Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
|
||||||
Copyright (c) 2014, 2019, MariaDB Corporation.
|
Copyright (c) 2014, 2020, 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
|
||||||
@ -9050,6 +9050,8 @@ i_s_innodb_mutexes_fill_table(
|
|||||||
~Locking() { mutex_exit(&rw_lock_list_mutex); }
|
~Locking() { mutex_exit(&rw_lock_list_mutex); }
|
||||||
} locking;
|
} locking;
|
||||||
|
|
||||||
|
char lock_name[sizeof "buf0dump.cc:12345"];
|
||||||
|
|
||||||
for (lock = UT_LIST_GET_FIRST(rw_lock_list); lock != NULL;
|
for (lock = UT_LIST_GET_FIRST(rw_lock_list); lock != NULL;
|
||||||
lock = UT_LIST_GET_NEXT(list, lock)) {
|
lock = UT_LIST_GET_NEXT(list, lock)) {
|
||||||
if (lock->count_os_wait == 0) {
|
if (lock->count_os_wait == 0) {
|
||||||
@ -9062,11 +9064,16 @@ i_s_innodb_mutexes_fill_table(
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
//OK(field_store_string(fields[MUTEXES_NAME],
|
const char* basename = innobase_basename(
|
||||||
// lock->lock_name));
|
lock->cfile_name);
|
||||||
OK(field_store_string(
|
|
||||||
fields[MUTEXES_CREATE_FILE],
|
snprintf(lock_name, sizeof lock_name, "%s:%u",
|
||||||
innobase_basename(lock->cfile_name)));
|
basename, lock->cline);
|
||||||
|
|
||||||
|
OK(field_store_string(fields[MUTEXES_NAME],
|
||||||
|
lock_name));
|
||||||
|
OK(field_store_string(fields[MUTEXES_CREATE_FILE],
|
||||||
|
basename));
|
||||||
OK(fields[MUTEXES_CREATE_LINE]->store(lock->cline,
|
OK(fields[MUTEXES_CREATE_LINE]->store(lock->cline,
|
||||||
true));
|
true));
|
||||||
fields[MUTEXES_CREATE_LINE]->set_notnull();
|
fields[MUTEXES_CREATE_LINE]->set_notnull();
|
||||||
@ -9082,8 +9089,8 @@ i_s_innodb_mutexes_fill_table(
|
|||||||
snprintf(buf1, sizeof buf1, "combined %s",
|
snprintf(buf1, sizeof buf1, "combined %s",
|
||||||
innobase_basename(block_lock->cfile_name));
|
innobase_basename(block_lock->cfile_name));
|
||||||
|
|
||||||
//OK(field_store_string(fields[MUTEXES_NAME],
|
OK(field_store_string(fields[MUTEXES_NAME],
|
||||||
// block_lock->lock_name));
|
"buf_block_t::lock"));
|
||||||
OK(field_store_string(fields[MUTEXES_CREATE_FILE],
|
OK(field_store_string(fields[MUTEXES_CREATE_FILE],
|
||||||
buf1));
|
buf1));
|
||||||
OK(fields[MUTEXES_CREATE_LINE]->store(block_lock->cline,
|
OK(fields[MUTEXES_CREATE_LINE]->store(block_lock->cline,
|
||||||
|
@ -184,6 +184,18 @@ do {\
|
|||||||
HASH_INVALIDATE(DATA, NAME);\
|
HASH_INVALIDATE(DATA, NAME);\
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
#define HASH_REPLACE(TYPE, NAME, TABLE, FOLD, DATA_OLD, DATA_NEW) \
|
||||||
|
do { \
|
||||||
|
(DATA_NEW)->NAME = (DATA_OLD)->NAME; \
|
||||||
|
\
|
||||||
|
hash_cell_t& cell3333 \
|
||||||
|
= TABLE->array[hash_calc_hash(FOLD, TABLE)]; \
|
||||||
|
TYPE** struct3333 = (TYPE**)&cell3333.node; \
|
||||||
|
while (*struct3333 != DATA_OLD) { \
|
||||||
|
struct3333 = &((*struct3333)->NAME); \
|
||||||
|
} \
|
||||||
|
*struct3333 = DATA_NEW; \
|
||||||
|
} while (0)
|
||||||
/*******************************************************************//**
|
/*******************************************************************//**
|
||||||
Gets the first struct in a hash chain, NULL if none. */
|
Gets the first struct in a hash chain, NULL if none. */
|
||||||
|
|
||||||
|
@ -291,13 +291,6 @@ mem_heap_printf(
|
|||||||
const char* format, /*!< in: format string */
|
const char* format, /*!< in: format string */
|
||||||
...) MY_ATTRIBUTE ((format (printf, 2, 3)));
|
...) MY_ATTRIBUTE ((format (printf, 2, 3)));
|
||||||
|
|
||||||
/** Checks that an object is a memory heap (or a block of it)
|
|
||||||
@param[in] heap Memory heap to check */
|
|
||||||
UNIV_INLINE
|
|
||||||
void
|
|
||||||
mem_block_validate(
|
|
||||||
const mem_heap_t* heap);
|
|
||||||
|
|
||||||
#ifdef UNIV_DEBUG
|
#ifdef UNIV_DEBUG
|
||||||
/** Validates the contents of a memory heap.
|
/** Validates the contents of a memory heap.
|
||||||
Asserts that the memory heap is consistent
|
Asserts that the memory heap is consistent
|
||||||
@ -312,7 +305,6 @@ mem_heap_validate(
|
|||||||
|
|
||||||
/** The info structure stored at the beginning of a heap block */
|
/** The info structure stored at the beginning of a heap block */
|
||||||
struct mem_block_info_t {
|
struct mem_block_info_t {
|
||||||
ulint magic_n;/* magic number for debugging */
|
|
||||||
#ifdef UNIV_DEBUG
|
#ifdef UNIV_DEBUG
|
||||||
char file_name[8];/* file name where the mem heap was created */
|
char file_name[8];/* file name where the mem heap was created */
|
||||||
unsigned line; /*!< line number where the mem heap was created */
|
unsigned line; /*!< line number where the mem heap was created */
|
||||||
@ -347,9 +339,6 @@ struct mem_block_info_t {
|
|||||||
otherwise, this is NULL */
|
otherwise, this is NULL */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MEM_BLOCK_MAGIC_N 764741555
|
|
||||||
#define MEM_FREED_BLOCK_MAGIC_N 547711122
|
|
||||||
|
|
||||||
/* Header size for a memory heap block */
|
/* Header size for a memory heap block */
|
||||||
#define MEM_BLOCK_HEADER_SIZE UT_CALC_ALIGN(sizeof(mem_block_info_t),\
|
#define MEM_BLOCK_HEADER_SIZE UT_CALC_ALIGN(sizeof(mem_block_info_t),\
|
||||||
UNIV_MEM_ALIGNMENT)
|
UNIV_MEM_ALIGNMENT)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
|
||||||
Copyright (c) 1994, 2014, Oracle and/or its affiliates. All Rights Reserved.
|
Copyright (c) 1994, 2014, Oracle and/or its affiliates. All Rights Reserved.
|
||||||
Copyright (c) 2017, MariaDB Corporation.
|
Copyright (c) 2017, 2020, 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
|
||||||
@ -144,16 +144,6 @@ mem_block_get_start(mem_block_t* block)
|
|||||||
return(block->start);
|
return(block->start);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Checks that an object is a memory heap block
|
|
||||||
@param[in] block Memory block to check. */
|
|
||||||
UNIV_INLINE
|
|
||||||
void
|
|
||||||
mem_block_validate(
|
|
||||||
const mem_block_t* block)
|
|
||||||
{
|
|
||||||
ut_a(block->magic_n == MEM_BLOCK_MAGIC_N);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Allocates and zero-fills n bytes of memory from a memory heap.
|
/** Allocates and zero-fills n bytes of memory from a memory heap.
|
||||||
@param[in] heap memory heap
|
@param[in] heap memory heap
|
||||||
@param[in] n number of bytes; if the heap is allowed to grow into
|
@param[in] n number of bytes; if the heap is allowed to grow into
|
||||||
@ -186,8 +176,6 @@ mem_heap_alloc(
|
|||||||
byte* buf;
|
byte* buf;
|
||||||
ulint free;
|
ulint free;
|
||||||
|
|
||||||
ut_d(mem_block_validate(heap));
|
|
||||||
|
|
||||||
block = UT_LIST_GET_LAST(heap->base);
|
block = UT_LIST_GET_LAST(heap->base);
|
||||||
|
|
||||||
n += REDZONE_SIZE;
|
n += REDZONE_SIZE;
|
||||||
@ -230,8 +218,6 @@ mem_heap_get_heap_top(
|
|||||||
mem_block_t* block;
|
mem_block_t* block;
|
||||||
byte* buf;
|
byte* buf;
|
||||||
|
|
||||||
ut_d(mem_block_validate(heap));
|
|
||||||
|
|
||||||
block = UT_LIST_GET_LAST(heap->base);
|
block = UT_LIST_GET_LAST(heap->base);
|
||||||
|
|
||||||
buf = (byte*) block + mem_block_get_free(block);
|
buf = (byte*) block + mem_block_get_free(block);
|
||||||
@ -322,8 +308,6 @@ mem_heap_get_top(
|
|||||||
mem_block_t* block;
|
mem_block_t* block;
|
||||||
byte* buf;
|
byte* buf;
|
||||||
|
|
||||||
ut_d(mem_block_validate(heap));
|
|
||||||
|
|
||||||
block = UT_LIST_GET_LAST(heap->base);
|
block = UT_LIST_GET_LAST(heap->base);
|
||||||
|
|
||||||
buf = (byte*) block + mem_block_get_free(block) - MEM_SPACE_NEEDED(n);
|
buf = (byte*) block + mem_block_get_free(block) - MEM_SPACE_NEEDED(n);
|
||||||
@ -343,8 +327,6 @@ mem_heap_free_top(
|
|||||||
{
|
{
|
||||||
mem_block_t* block;
|
mem_block_t* block;
|
||||||
|
|
||||||
ut_d(mem_block_validate(heap));
|
|
||||||
|
|
||||||
n += REDZONE_SIZE;
|
n += REDZONE_SIZE;
|
||||||
|
|
||||||
block = UT_LIST_GET_LAST(heap->base);
|
block = UT_LIST_GET_LAST(heap->base);
|
||||||
@ -420,8 +402,6 @@ mem_heap_free(
|
|||||||
mem_block_t* block;
|
mem_block_t* block;
|
||||||
mem_block_t* prev_block;
|
mem_block_t* prev_block;
|
||||||
|
|
||||||
ut_d(mem_block_validate(heap));
|
|
||||||
|
|
||||||
block = UT_LIST_GET_LAST(heap->base);
|
block = UT_LIST_GET_LAST(heap->base);
|
||||||
|
|
||||||
if (heap->free_block) {
|
if (heap->free_block) {
|
||||||
@ -448,11 +428,7 @@ mem_heap_get_size(
|
|||||||
/*==============*/
|
/*==============*/
|
||||||
mem_heap_t* heap) /*!< in: heap */
|
mem_heap_t* heap) /*!< in: heap */
|
||||||
{
|
{
|
||||||
ulint size = 0;
|
ulint size = heap->total_size;
|
||||||
|
|
||||||
ut_d(mem_block_validate(heap));
|
|
||||||
|
|
||||||
size = heap->total_size;
|
|
||||||
|
|
||||||
if (heap->free_block) {
|
if (heap->free_block) {
|
||||||
size += srv_page_size;
|
size += srv_page_size;
|
||||||
|
@ -1410,7 +1410,11 @@ rec_get_converted_size(
|
|||||||
|
|
||||||
data_size = dtuple_get_data_size(dtuple, 0);
|
data_size = dtuple_get_data_size(dtuple, 0);
|
||||||
|
|
||||||
ut_ad(n_ext == dtuple_get_n_ext(dtuple));
|
/* If primary key is being updated then the new record inherits
|
||||||
|
externally stored fields from the delete-marked old record.
|
||||||
|
In that case, n_ext may be less value than
|
||||||
|
dtuple_get_n_ext(tuple). */
|
||||||
|
ut_ad(n_ext <= dtuple_get_n_ext(dtuple));
|
||||||
extra_size = rec_get_converted_extra_size(
|
extra_size = rec_get_converted_extra_size(
|
||||||
data_size, dtuple_get_n_fields(dtuple), n_ext);
|
data_size, dtuple_get_n_fields(dtuple), n_ext);
|
||||||
|
|
||||||
|
@ -210,8 +210,6 @@ mem_heap_validate(
|
|||||||
block != NULL;
|
block != NULL;
|
||||||
block = UT_LIST_GET_NEXT(list, block)) {
|
block = UT_LIST_GET_NEXT(list, block)) {
|
||||||
|
|
||||||
mem_block_validate(block);
|
|
||||||
|
|
||||||
switch (block->type) {
|
switch (block->type) {
|
||||||
case MEM_HEAP_DYNAMIC:
|
case MEM_HEAP_DYNAMIC:
|
||||||
break;
|
break;
|
||||||
@ -266,7 +264,6 @@ mem_heap_create_block_func(
|
|||||||
|| (type == MEM_HEAP_BUFFER + MEM_HEAP_BTR_SEARCH));
|
|| (type == MEM_HEAP_BUFFER + MEM_HEAP_BTR_SEARCH));
|
||||||
|
|
||||||
if (heap != NULL) {
|
if (heap != NULL) {
|
||||||
mem_block_validate(heap);
|
|
||||||
ut_d(mem_heap_validate(heap));
|
ut_d(mem_heap_validate(heap));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -308,7 +305,6 @@ mem_heap_create_block_func(
|
|||||||
block->buf_block = buf_block;
|
block->buf_block = buf_block;
|
||||||
block->free_block = NULL;
|
block->free_block = NULL;
|
||||||
|
|
||||||
block->magic_n = MEM_BLOCK_MAGIC_N;
|
|
||||||
ut_d(ut_strlcpy_rev(block->file_name, file_name,
|
ut_d(ut_strlcpy_rev(block->file_name, file_name,
|
||||||
sizeof(block->file_name)));
|
sizeof(block->file_name)));
|
||||||
ut_d(block->line = line);
|
ut_d(block->line = line);
|
||||||
@ -356,8 +352,6 @@ mem_heap_add_block(
|
|||||||
mem_block_t* new_block;
|
mem_block_t* new_block;
|
||||||
ulint new_size;
|
ulint new_size;
|
||||||
|
|
||||||
ut_d(mem_block_validate(heap));
|
|
||||||
|
|
||||||
block = UT_LIST_GET_LAST(heap->base);
|
block = UT_LIST_GET_LAST(heap->base);
|
||||||
|
|
||||||
/* We have to allocate a new block. The size is always at least
|
/* We have to allocate a new block. The size is always at least
|
||||||
@ -410,8 +404,6 @@ mem_heap_block_free(
|
|||||||
|
|
||||||
buf_block = static_cast<buf_block_t*>(block->buf_block);
|
buf_block = static_cast<buf_block_t*>(block->buf_block);
|
||||||
|
|
||||||
mem_block_validate(block);
|
|
||||||
|
|
||||||
UT_LIST_REMOVE(heap->base, block);
|
UT_LIST_REMOVE(heap->base, block);
|
||||||
|
|
||||||
ut_ad(heap->total_size >= block->len);
|
ut_ad(heap->total_size >= block->len);
|
||||||
@ -419,7 +411,6 @@ mem_heap_block_free(
|
|||||||
|
|
||||||
type = heap->type;
|
type = heap->type;
|
||||||
len = block->len;
|
len = block->len;
|
||||||
block->magic_n = MEM_FREED_BLOCK_MAGIC_N;
|
|
||||||
|
|
||||||
if (type == MEM_HEAP_DYNAMIC || len < srv_page_size / 2) {
|
if (type == MEM_HEAP_DYNAMIC || len < srv_page_size / 2) {
|
||||||
ut_ad(!buf_block);
|
ut_ad(!buf_block);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
|
||||||
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All Rights Reserved.
|
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All Rights Reserved.
|
||||||
Copyright (c) 2015, 2019, MariaDB Corporation.
|
Copyright (c) 2015, 2020, 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
|
||||||
@ -3142,6 +3142,16 @@ row_discard_tablespace_for_mysql(
|
|||||||
} else {
|
} else {
|
||||||
ut_ad(!table->n_foreign_key_checks_running);
|
ut_ad(!table->n_foreign_key_checks_running);
|
||||||
|
|
||||||
|
bool fts_exist = (dict_table_has_fts_index(table)
|
||||||
|
|| DICT_TF2_FLAG_IS_SET(
|
||||||
|
table, DICT_TF2_FTS_HAS_DOC_ID));
|
||||||
|
|
||||||
|
if (fts_exist) {
|
||||||
|
row_mysql_unlock_data_dictionary(trx);
|
||||||
|
fts_optimize_remove_table(table);
|
||||||
|
row_mysql_lock_data_dictionary(trx);
|
||||||
|
}
|
||||||
|
|
||||||
/* Do foreign key constraint checks. */
|
/* Do foreign key constraint checks. */
|
||||||
|
|
||||||
err = row_discard_tablespace_foreign_key_checks(trx, table);
|
err = row_discard_tablespace_foreign_key_checks(trx, table);
|
||||||
@ -3149,6 +3159,10 @@ row_discard_tablespace_for_mysql(
|
|||||||
if (err == DB_SUCCESS) {
|
if (err == DB_SUCCESS) {
|
||||||
err = row_discard_tablespace(trx, table);
|
err = row_discard_tablespace(trx, table);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fts_exist && err != DB_SUCCESS) {
|
||||||
|
fts_optimize_add_table(table);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return(row_discard_tablespace_end(trx, table, err));
|
return(row_discard_tablespace_end(trx, table, err));
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
Copyright (c) 1995, 2017, Oracle and/or its affiliates. All Rights Reserved.
|
Copyright (c) 1995, 2017, Oracle and/or its affiliates. All Rights Reserved.
|
||||||
Copyright (c) 2008, 2009 Google Inc.
|
Copyright (c) 2008, 2009 Google Inc.
|
||||||
Copyright (c) 2009, Percona Inc.
|
Copyright (c) 2009, Percona Inc.
|
||||||
Copyright (c) 2013, 2019, MariaDB Corporation.
|
Copyright (c) 2013, 2020, MariaDB Corporation.
|
||||||
|
|
||||||
Portions of this file contain modifications contributed and copyrighted by
|
Portions of this file contain modifications contributed and copyrighted by
|
||||||
Google, Inc. Those modifications are gratefully acknowledged and are described
|
Google, Inc. Those modifications are gratefully acknowledged and are described
|
||||||
@ -487,7 +487,9 @@ current_time % 60 == 0 and no tasks will be performed when
|
|||||||
current_time % 5 != 0. */
|
current_time % 5 != 0. */
|
||||||
|
|
||||||
# define SRV_MASTER_CHECKPOINT_INTERVAL (7)
|
# define SRV_MASTER_CHECKPOINT_INTERVAL (7)
|
||||||
# define SRV_MASTER_PURGE_INTERVAL (10)
|
#ifdef MEM_PERIODIC_CHECK
|
||||||
|
# define SRV_MASTER_MEM_VALIDATE_INTERVAL (13)
|
||||||
|
#endif /* MEM_PERIODIC_CHECK */
|
||||||
# define SRV_MASTER_DICT_LRU_INTERVAL (47)
|
# define SRV_MASTER_DICT_LRU_INTERVAL (47)
|
||||||
|
|
||||||
/** Simulate compression failures. */
|
/** Simulate compression failures. */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user