config root man

Current Path : /home/usr.opt/mysql57/mysql-test/suite/rpl/t/

FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64
Upload File :
Current File : //home/usr.opt/mysql57/mysql-test/suite/rpl/t/rpl_binlog_sender_packet_shrink.test

# ==== Purpose ====
#
# This test will generate a big event and then will generate many small
# events, and will monitor the server memory consumption, observing the
# growth and the shrink of the binary log sender packet.
#
# ==== Related Bugs and Worklogs ====
#
# BUG#24643036 BINLOG_SENDER DOES NOT REDUCE SIZE OF SEND BUFFER AS EXPECTED
#

# This test case is binary log format agnostic
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
--source include/stop_dump_threads.inc

--let $default_packet_size=`SELECT @@GLOBAL.net_buffer_length`

CREATE TABLE t1 (a TEXT(1048576));
--source include/sync_slave_sql_with_master.inc
--connection master
--let $tid= `SELECT THREAD_ID FROM performance_schema.threads WHERE PROCESSLIST_COMMAND LIKE "Binlog Dump%"`
--let $from_table= FROM performance_schema.memory_summary_by_thread_by_event_name
--let $from_clause= $from_table WHERE THREAD_ID = $tid AND EVENT_NAME LIKE 'memory/sql/String::value'
# The network packet is initialized with @@GLOBAL.net_buffer_length bytes.
# Calculate the baseline (just in case)
# BASELINE = (all) BYTES_USED - $default_packet_size
--let $baseline=`SELECT CURRENT_NUMBER_OF_BYTES_USED - $default_packet_size $from_clause`

--echo #
--echo # 1. Generate a big event to make the packet to grow
--echo #
--echo INSERT 1M byte string
--let $big= REPEAT('a', 1048576)
eval INSERT INTO t1 VALUES ($big);
--source include/sync_slave_sql_with_master.inc
--connection master
--let $last_packet_size= $default_packet_size
--let $current_packet_size= `SELECT CURRENT_NUMBER_OF_BYTES_USED - $baseline $from_clause`
# Use ROUND in the calculation to minimize the possibility of variation
--let $ratio= `SELECT ROUND($current_packet_size / $last_packet_size, 0)`
--let $assert_text= The packet should have grown 64 times after a 1M big event
--let $assert_cond= [ SELECT $ratio = 64 ]
--source include/assert.inc

--echo #
--echo # 2. Generate 100 events with some having more then 4097
--echo #    bytes to ensure that the packet will shrink
--echo #
--let $trx_to_shrink= 20
--echo INSERT 20 x 8K string (x 5 events: GTID, BEGIN, TABLE_MAP, ROWS, XID)
--let $i= 0
--let $medium= REPEAT('b', 8192)
while ($i < $trx_to_shrink)
{
  eval INSERT INTO t1 VALUES ($medium);
  --inc $i
}
--source include/sync_slave_sql_with_master.inc
--connection master
--let $last_packet_size= $current_packet_size
--let $current_packet_size= `SELECT CURRENT_NUMBER_OF_BYTES_USED - $baseline $from_clause`

# We will tolerate a noise of $noise_tolerance bytes at each shrink assert
# probably just because of rounding and memory alignment.
--let $noise_tolerance= 16
--let $assert_text= The packet should be halved after 100 medium events
--let $assert_cond= $current_packet_size BETWEEN $last_packet_size/2 - $noise_tolerance AND $last_packet_size/2 + $noise_tolerance
--source include/assert.inc

--echo #
--echo # 3. Generate 700 events with some having less then 4096
--echo #    bytes to ensure that the packet will shrink to
--echo #    the minimum size.
--echo #
--echo INSERT 7 x 20 x 1K string (x 4 events: GTID, BEGIN, TABLE_MAP, ROWS, XID)
--let $b= 1
while ($b < 8)
{
  --echo Iteration $b: INSERT 25 x 1K string (x 4 events: GTID, BEGIN, QUERY, XID)
  --let $i= 0
  --let $small= REPEAT('c', 1024)
  while ($i < $trx_to_shrink)
  {
    eval INSERT INTO t1 VALUES ($small);
    --inc $i
  }
  --source include/sync_slave_sql_with_master.inc
  --connection master
  --let $last_packet_size= $current_packet_size
  --let $current_packet_size= `SELECT CURRENT_NUMBER_OF_BYTES_USED - $baseline $from_clause`
  --let $assert_text= Iteration $b: The packet should be halved after 100 small events
  --let $assert_cond= $current_packet_size BETWEEN $last_packet_size/2 - $noise_tolerance AND $last_packet_size/2 + $noise_tolerance
  --source include/assert.inc
  --inc $b
}

# Cleanup
DROP TABLE t1;
--source include/rpl_end.inc

Man Man