forked from facebook/mysql-5.6
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
New conf option for SO_SNDBUF in dump thread.
Summary: A new configuration option rpl_send_buffer_size is added to control the TCP send buffer size of the socket used in dump thread. Reference patch: facebook@ac90867 Differential Revision: D6377432 (facebook@a107c9c) fbshipit-source-id: d9b0099277c
- Loading branch information
Showing
8 changed files
with
272 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
106 changes: 106 additions & 0 deletions
106
mysql-test/suite/sys_vars/r/rpl_send_buffer_size_basic.result
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
SET @start_rpl_send_buffer_size = @@global.rpl_send_buffer_size; | ||
SELECT @start_rpl_send_buffer_size; | ||
@start_rpl_send_buffer_size | ||
2097152 | ||
'#--------------------TEST_01------------------------#' | ||
SET @@global.rpl_send_buffer_size = 20 * 1024; | ||
SET @@global.rpl_send_buffer_size = DEFAULT; | ||
SELECT @@global.rpl_send_buffer_size; | ||
@@global.rpl_send_buffer_size | ||
2097152 | ||
'#---------------------TEST_02-------------------------#' | ||
SET @@global.rpl_send_buffer_size = @start_rpl_send_buffer_size; | ||
SELECT @@global.rpl_send_buffer_size = 2 * 1024 * 1024; | ||
@@global.rpl_send_buffer_size = 2 * 1024 * 1024 | ||
1 | ||
'#--------------------TEST_03------------------------#' | ||
SET @@global.rpl_send_buffer_size = 16 * 1024; | ||
SELECT @@global.rpl_send_buffer_size; | ||
@@global.rpl_send_buffer_size | ||
16384 | ||
SET @@global.rpl_send_buffer_size = 128 * 1024 * 1024; | ||
SELECT @@global.rpl_send_buffer_size; | ||
@@global.rpl_send_buffer_size | ||
134217728 | ||
SET @@global.rpl_send_buffer_size = 300 * 1024; | ||
SELECT @@global.rpl_send_buffer_size; | ||
@@global.rpl_send_buffer_size | ||
307200 | ||
SET @@global.rpl_send_buffer_size = 100 * 1024 * 1024; | ||
SELECT @@global.rpl_send_buffer_size; | ||
@@global.rpl_send_buffer_size | ||
104857600 | ||
'#--------------------TEST_04-------------------------#' | ||
SET @@global.rpl_send_buffer_size = -1; | ||
Warnings: | ||
Warning 1292 Truncated incorrect rpl_send_buffer_size value: '-1' | ||
SELECT @@global.rpl_send_buffer_size; | ||
@@global.rpl_send_buffer_size | ||
1024 | ||
SET @@global.rpl_send_buffer_size = 100; | ||
Warnings: | ||
Warning 1292 Truncated incorrect rpl_send_buffer_size value: '100' | ||
SELECT @@global.rpl_send_buffer_size; | ||
@@global.rpl_send_buffer_size | ||
1024 | ||
SET @@global.rpl_send_buffer_size = 18446744073709551616; | ||
ERROR 42000: Incorrect argument type to variable 'rpl_send_buffer_size' | ||
SELECT @@global.rpl_send_buffer_size; | ||
@@global.rpl_send_buffer_size | ||
1024 | ||
SET @@global.rpl_send_buffer_size = 10000.01; | ||
ERROR 42000: Incorrect argument type to variable 'rpl_send_buffer_size' | ||
SELECT @@global.rpl_send_buffer_size; | ||
@@global.rpl_send_buffer_size | ||
1024 | ||
SET @@global.rpl_send_buffer_size = ON; | ||
ERROR 42000: Incorrect argument type to variable 'rpl_send_buffer_size' | ||
SELECT @@global.rpl_send_buffer_size; | ||
@@global.rpl_send_buffer_size | ||
1024 | ||
SET @@global.rpl_send_buffer_size = 'test'; | ||
ERROR 42000: Incorrect argument type to variable 'rpl_send_buffer_size' | ||
SELECT @@global.rpl_send_buffer_size; | ||
@@global.rpl_send_buffer_size | ||
1024 | ||
'#-------------------TEST_05----------------------------#' | ||
SET @@session.rpl_send_buffer_size = 20 * 1024; | ||
ERROR HY000: Variable 'rpl_send_buffer_size' is a GLOBAL variable and should be set with SET GLOBAL | ||
SELECT @@session.rpl_send_buffer_size; | ||
ERROR HY000: Variable 'rpl_send_buffer_size' is a GLOBAL variable | ||
'#----------------------TEST_06------------------------#' | ||
SELECT @@global.rpl_send_buffer_size = VARIABLE_VALUE | ||
FROM performance_schema.global_variables | ||
WHERE VARIABLE_NAME='rpl_send_buffer_size'; | ||
@@global.rpl_send_buffer_size = VARIABLE_VALUE | ||
1 | ||
SELECT @@rpl_send_buffer_size = VARIABLE_VALUE | ||
FROM performance_schema.session_variables | ||
WHERE VARIABLE_NAME='rpl_send_buffer_size'; | ||
@@rpl_send_buffer_size = VARIABLE_VALUE | ||
1 | ||
'#---------------------TEST_08----------------------#' | ||
SET @@global.rpl_send_buffer_size = 30 * 1024; | ||
SELECT @@rpl_send_buffer_size = @@global.rpl_send_buffer_size; | ||
@@rpl_send_buffer_size = @@global.rpl_send_buffer_size | ||
1 | ||
'#---------------------TEST_09----------------------#' | ||
SET rpl_send_buffer_size = 20 * 1024; | ||
ERROR HY000: Variable 'rpl_send_buffer_size' is a GLOBAL variable and should be set with SET GLOBAL | ||
SELECT @@rpl_send_buffer_size; | ||
@@rpl_send_buffer_size | ||
30720 | ||
SET local.rpl_send_buffer_size = 20 * 1024; | ||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'local.rpl_send_buffer_size = 20 * 1024' at line 1 | ||
SELECT local.rpl_send_buffer_size; | ||
ERROR 42S02: Unknown table 'local' in field list | ||
SET global.rpl_send_buffer_size = 30 * 1024; | ||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'global.rpl_send_buffer_size = 30 * 1024' at line 1 | ||
SELECT global.rpl_send_buffer_size; | ||
ERROR 42S02: Unknown table 'global' in field list | ||
SELECT rpl_send_buffer_size = @@session.rpl_send_buffer_size; | ||
ERROR 42S22: Unknown column 'rpl_send_buffer_size' in 'field list' | ||
SET @@global.rpl_send_buffer_size = @start_rpl_send_buffer_size; | ||
SELECT @@global.rpl_send_buffer_size; | ||
@@global.rpl_send_buffer_size | ||
2097152 |
132 changes: 132 additions & 0 deletions
132
mysql-test/suite/sys_vars/t/rpl_send_buffer_size_basic.test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
--source include/load_sysvars.inc | ||
|
||
######################################################################## | ||
# START OF rpl_send_buffer_size TESTS # | ||
######################################################################## | ||
|
||
|
||
SET @start_rpl_send_buffer_size = @@global.rpl_send_buffer_size; | ||
SELECT @start_rpl_send_buffer_size; | ||
|
||
--echo '#--------------------TEST_01------------------------#' | ||
######################################################################## | ||
# Display the DEFAULT value of rpl_send_buffer_size # | ||
######################################################################## | ||
|
||
SET @@global.rpl_send_buffer_size = 20 * 1024; | ||
SET @@global.rpl_send_buffer_size = DEFAULT; | ||
SELECT @@global.rpl_send_buffer_size; | ||
|
||
|
||
--echo '#---------------------TEST_02-------------------------#' | ||
############################################### | ||
# Verify default value of variable # | ||
############################################### | ||
|
||
SET @@global.rpl_send_buffer_size = @start_rpl_send_buffer_size; | ||
SELECT @@global.rpl_send_buffer_size = 2 * 1024 * 1024; | ||
|
||
--echo '#--------------------TEST_03------------------------#' | ||
######################################################################## | ||
# Change the value of rpl_send_buffer_size to a valid value # | ||
######################################################################## | ||
|
||
SET @@global.rpl_send_buffer_size = 16 * 1024; | ||
SELECT @@global.rpl_send_buffer_size; | ||
SET @@global.rpl_send_buffer_size = 128 * 1024 * 1024; | ||
SELECT @@global.rpl_send_buffer_size; | ||
SET @@global.rpl_send_buffer_size = 300 * 1024; | ||
SELECT @@global.rpl_send_buffer_size; | ||
SET @@global.rpl_send_buffer_size = 100 * 1024 * 1024; | ||
SELECT @@global.rpl_send_buffer_size; | ||
|
||
|
||
--echo '#--------------------TEST_04-------------------------#' | ||
######################################################################### | ||
# Change the value of rpl_send_buffer_size to invalid value # | ||
######################################################################### | ||
|
||
SET @@global.rpl_send_buffer_size = -1; | ||
SELECT @@global.rpl_send_buffer_size; | ||
SET @@global.rpl_send_buffer_size = 100; | ||
SELECT @@global.rpl_send_buffer_size; | ||
--Error ER_WRONG_TYPE_FOR_VAR | ||
SET @@global.rpl_send_buffer_size = 18446744073709551616; | ||
SELECT @@global.rpl_send_buffer_size; | ||
--Error ER_WRONG_TYPE_FOR_VAR | ||
SET @@global.rpl_send_buffer_size = 10000.01; | ||
SELECT @@global.rpl_send_buffer_size; | ||
|
||
--Error ER_WRONG_TYPE_FOR_VAR | ||
SET @@global.rpl_send_buffer_size = ON; | ||
SELECT @@global.rpl_send_buffer_size; | ||
--Error ER_WRONG_TYPE_FOR_VAR | ||
SET @@global.rpl_send_buffer_size = 'test'; | ||
SELECT @@global.rpl_send_buffer_size; | ||
|
||
|
||
--echo '#-------------------TEST_05----------------------------#' | ||
########################################################################## | ||
# Test if accessing session rpl_send_buffer_size gives error # | ||
########################################################################## | ||
|
||
--Error ER_GLOBAL_VARIABLE | ||
SET @@session.rpl_send_buffer_size = 20 * 1024; | ||
--Error ER_INCORRECT_GLOBAL_LOCAL_VAR | ||
SELECT @@session.rpl_send_buffer_size; | ||
|
||
|
||
--echo '#----------------------TEST_06------------------------#' | ||
############################################################################## | ||
# Check if the value in GLOBAL & SESSION Tables matches values in variable # | ||
############################################################################## | ||
|
||
SELECT @@global.rpl_send_buffer_size = VARIABLE_VALUE | ||
FROM performance_schema.global_variables | ||
WHERE VARIABLE_NAME='rpl_send_buffer_size'; | ||
|
||
SELECT @@rpl_send_buffer_size = VARIABLE_VALUE | ||
FROM performance_schema.session_variables | ||
WHERE VARIABLE_NAME='rpl_send_buffer_size'; | ||
|
||
|
||
--echo '#---------------------TEST_08----------------------#' | ||
######################################################################################################## | ||
# Check if accessing variable with SESSION,LOCAL and without SCOPE points to same session variable # | ||
######################################################################################################## | ||
|
||
SET @@global.rpl_send_buffer_size = 30 * 1024; | ||
SELECT @@rpl_send_buffer_size = @@global.rpl_send_buffer_size; | ||
|
||
|
||
--echo '#---------------------TEST_09----------------------#' | ||
################################################################################ | ||
# Check if rpl_send_buffer_size can be accessed with and without @@ sign # | ||
################################################################################ | ||
|
||
--Error ER_GLOBAL_VARIABLE | ||
SET rpl_send_buffer_size = 20 * 1024; | ||
SELECT @@rpl_send_buffer_size; | ||
--Error ER_PARSE_ERROR | ||
SET local.rpl_send_buffer_size = 20 * 1024; | ||
--Error ER_UNKNOWN_TABLE | ||
SELECT local.rpl_send_buffer_size; | ||
--Error ER_PARSE_ERROR | ||
SET global.rpl_send_buffer_size = 30 * 1024; | ||
--Error ER_UNKNOWN_TABLE | ||
SELECT global.rpl_send_buffer_size; | ||
--Error ER_BAD_FIELD_ERROR | ||
SELECT rpl_send_buffer_size = @@session.rpl_send_buffer_size; | ||
|
||
|
||
############################## | ||
# Restore initial value # | ||
############################## | ||
|
||
SET @@global.rpl_send_buffer_size = @start_rpl_send_buffer_size; | ||
SELECT @@global.rpl_send_buffer_size; | ||
|
||
|
||
###################################################################### | ||
# END OF rpl_send_buffer_size TESTS # | ||
###################################################################### |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters