mariadb/mysql-test/suite/sys_vars/inc
Alfranio Correia 3f5a9c7ea0 BUG#57275 binlog_cache_size affects trx- and stmt-cache and gets twice the expected memory
After the WL#2687, the binlog_cache_size and max_binlog_cache_size affect both the
stmt-cache and the trx-cache. This means that the resource used is twice the amount
expected/defined by the user.
      
The binlog_cache_use is incremented when the stmt-cache or the trx-cache is used
and binlog_cache_disk_use is incremented when the disk space from the stmt-cache or the
trx-cache is used. This behavior does not allow to distinguish which cache may be harming
performance due to the extra disk accesses and needs to have its in-memory cache
increased.
      
To fix the problem, we introduced two new options and status variables related to the
stmt-cache:
      
  Options:
      
    . binlog_stmt_cache_size
    . max_binlog_stmt_cache_size
      
    Status Variables:
      
    . binlog_stmt_cache_use
    . binlog_stmt_cache_disk_use

So there are

  . binlog_cache_size that defines the size of the transactional cache for
  updates to transactional engines for the binary log.

  . binlog_stmt_cache_size that defines the size of the statement cache for
  updates to non-transactional engines for the binary log.

  . max_binlog_cache_size that sets the total size of the transactional
  cache.

  . max_binlog_stmt_cache_size that sets the total size of the statement
  cache.

  . binlog_cache_use that identifies the number of transactions that used the
  temporary transactional binary log cache.

  . binlog_cache_disk_use that identifies the number of transactions that used
  the temporary transactional binary log cache but that exceeded the value of
  binlog_cache_size.

  . binlog_stmt_cache_use that identifies the number of statements that used the
  temporary non-transactional binary log cache.

  . binlog_stmt_cache_disk_use that identifies the number of statements that used
  the temporary non-transactional binary log cache but that exceeded the value of
  binlog_stmt_cache_size.

include/my_sys.h:
  Updated message on disk_writes' usage.
mysql-test/extra/binlog_tests/binlog_cache_stat.test:
  Updated the test case and added code to check the new status variables
  binlog_stmt_cache_use and binlog_stmt_cache_disk_use.
mysql-test/extra/rpl_tests/rpl_binlog_max_cache_size.test:
  Updated the test case to use the new system variables max_binlog_stmt_cache_size and binlog_stmt_cache_size.
mysql-test/r/mysqld--help-notwin.result:
  Updated the result file.
mysql-test/suite/binlog/r/binlog_mixed_cache_stat.result:
  Updated the result file.
mysql-test/suite/binlog/r/binlog_row_cache_stat.result:
  Updated the result file.
mysql-test/suite/binlog/r/binlog_stm_cache_stat.result:
  Updated the result file.
mysql-test/suite/rpl/r/rpl_mixed_binlog_max_cache_size.result:
  Update the result file.
mysql-test/suite/rpl/r/rpl_row_binlog_max_cache_size.result:
  Update the result file.
mysql-test/suite/rpl/r/rpl_stm_binlog_max_cache_size.result:
  Updated the result file.
mysql-test/suite/sys_vars/inc/binlog_stmt_cache_size_basic.inc:
  Added a test case to check the binlog_stmt_cache_size.
mysql-test/suite/sys_vars/r/binlog_stmt_cache_size_basic_32.result:
  Updated the result file.
mysql-test/suite/sys_vars/r/binlog_stmt_cache_size_basic_64.result:
  Updated the result file.
mysql-test/suite/sys_vars/r/max_binlog_stmt_cache_size_basic.result:
  Updated the result file.
mysql-test/suite/sys_vars/t/binlog_stmt_cache_size_basic_32.test:
  Added a test case to check the binlog_stmt_cache_size.
mysql-test/suite/sys_vars/t/binlog_stmt_cache_size_basic_64.test:
  Added a test case to check the binlog_stmt_cache_size.
mysql-test/suite/sys_vars/t/max_binlog_cache_size_func-master.opt:
  Removed because there is no test case max_binlog_cache_size_func.
mysql-test/suite/sys_vars/t/max_binlog_stmt_cache_size_basic.test:
  Added a test case to check the system variable max_binlog_stmt_cache_size.
sql/log.cc:
  There two main changes in here:
  
    . Changed the set_write_error() as an error message is set according
    to the type of the cache.
  
    . Created the function set_binlog_cache_info where references to the
    appropriate status and system variables are set and the server can
    smoothly compute statistics and set the maximum size for each cache.
sql/log.h:
  Changed the signature of the function in order to identify the error message
  to be printed out as there is a different error code for each type of cache.
sql/mysqld.cc:
  Added new status variables binlog_stmt_cache_use and binlog_stmt_cache_disk_use.
sql/mysqld.h:
  Added new system variables max_binlog_stmt_cache_size and binlog_stmt_cache_size.
sql/share/errmsg-utf8.txt:
  Added new error message related to the statement cache.
sql/sys_vars.cc:
  Added new system variables max_binlog_stmt_cache_size and binlog_stmt_cache_size.
2010-11-05 17:42:37 +00:00
..
binlog_cache_size_basic.inc Final fix for bug#36522 in 5.1. This new fix was necessary due to fix of bug 37708. 2008-07-23 16:06:44 +02:00
binlog_stmt_cache_size_basic.inc BUG#57275 binlog_cache_size affects trx- and stmt-cache and gets twice the expected memory 2010-11-05 17:42:37 +00:00
bulk_insert_buffer_size_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
charset_basic.inc WL#4681: Took the system variable tests out of the main test suite, put them into "sys_vars", updated some reult files and tests. 2008-12-19 16:03:32 +01:00
collation_basic.inc WL#4681: Took the system variable tests out of the main test suite, put them into "sys_vars", updated some reult files and tests. 2008-12-19 16:03:32 +01:00
delayed_insert_limit_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
delayed_queue_size_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
join_buffer_size_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
key_cache_age_threshold_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
log_warnings_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
max_connect_errors_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
max_seeks_for_key_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
max_tmp_tables_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
max_write_lock_count_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
min_examined_row_limit_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
multi_range_count_basic.inc Final fix for bug#36522 in 5.1. This new fix was necessary due to fix of bug 37708. 2008-07-23 16:06:44 +02:00
myisam_max_sort_file_size_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
myisam_repair_threads_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
myisam_sort_buffer_size_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
net_retry_count_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
query_alloc_block_size_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
query_cache_limit_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
query_cache_min_res_unit_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
query_cache_size_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
range_alloc_block_size_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
rpl_recovery_rank_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
slave_transaction_retries_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
sort_buffer_size_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
transaction_alloc_block_size_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00
transaction_prealloc_size_basic.inc WL#4738 streamline/simplify @@variable creation process 2009-12-22 10:35:56 +01:00