From 2f031112605dcf3355587068cbc9e4501ca16482 Mon Sep 17 00:00:00 2001 From: ccf <15848426+goldendbccf123@user.noreply.gitee.com> Date: Wed, 28 May 2025 15:15:41 +0800 Subject: [PATCH 1/3] New files: rocksdb_merge_tmp_file_removal_delay_ms_basic.result, rocksdb_new_table_reader_for_compaction_inputs_basic.result --- ...rge_tmp_file_removal_delay_ms_basic.result | 86 +++++++++++++++++++ ..._reader_for_compaction_inputs_basic.result | 7 ++ 2 files changed, 93 insertions(+) create mode 100644 mysql-test/suite/rocksdb_sys_vars/r/rocksdb_merge_tmp_file_removal_delay_ms_basic.result create mode 100644 mysql-test/suite/rocksdb_sys_vars/r/rocksdb_new_table_reader_for_compaction_inputs_basic.result diff --git a/mysql-test/suite/rocksdb_sys_vars/r/rocksdb_merge_tmp_file_removal_delay_ms_basic.result b/mysql-test/suite/rocksdb_sys_vars/r/rocksdb_merge_tmp_file_removal_delay_ms_basic.result new file mode 100644 index 000000000..6436fcc83 --- /dev/null +++ b/mysql-test/suite/rocksdb_sys_vars/r/rocksdb_merge_tmp_file_removal_delay_ms_basic.result @@ -0,0 +1,86 @@ +CREATE TABLE valid_values (value varchar(255)) ENGINE=myisam; +INSERT INTO valid_values VALUES(1); +INSERT INTO valid_values VALUES(0); +CREATE TABLE invalid_values (value varchar(255)) ENGINE=myisam; +INSERT INTO invalid_values VALUES('\'aaa\''); +INSERT INTO invalid_values VALUES('\'bbb\''); +INSERT INTO invalid_values VALUES('on'); +SET @start_global_value = @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS; +SELECT @start_global_value; +@start_global_value +0 +SET @start_session_value = @@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS; +SELECT @start_session_value; +@start_session_value +0 +'# Setting to valid values in global scope#' +"Trying to set variable @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS to 1" +SET @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS = 1; +SELECT @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS; +@@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS +1 +"Setting the global scope variable back to default" +SET @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS = DEFAULT; +SELECT @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS; +@@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS +0 +"Trying to set variable @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS to 0" +SET @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS = 0; +SELECT @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS; +@@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS +0 +"Setting the global scope variable back to default" +SET @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS = DEFAULT; +SELECT @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS; +@@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS +0 +'# Setting to valid values in session scope#' +"Trying to set variable @@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS to 1" +SET @@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS = 1; +SELECT @@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS; +@@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS +1 +"Setting the session scope variable back to default" +SET @@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS = DEFAULT; +SELECT @@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS; +@@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS +0 +"Trying to set variable @@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS to 0" +SET @@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS = 0; +SELECT @@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS; +@@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS +0 +"Setting the session scope variable back to default" +SET @@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS = DEFAULT; +SELECT @@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS; +@@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS +0 +'# Testing with invalid values in global scope #' +"Trying to set variable @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS to 'aaa'" +SET @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS = 'aaa'; +Got one of the listed errors +SELECT @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS; +@@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS +0 +"Trying to set variable @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS to 'bbb'" +SET @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS = 'bbb'; +Got one of the listed errors +SELECT @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS; +@@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS +0 +"Trying to set variable @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS to on" +SET @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS = on; +Got one of the listed errors +SELECT @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS; +@@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS +0 +SET @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS = @start_global_value; +SELECT @@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS; +@@global.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS +0 +SET @@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS = @start_session_value; +SELECT @@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS; +@@session.ROCKSDB_MERGE_TMP_FILE_REMOVAL_DELAY_MS +0 +DROP TABLE valid_values; +DROP TABLE invalid_values; diff --git a/mysql-test/suite/rocksdb_sys_vars/r/rocksdb_new_table_reader_for_compaction_inputs_basic.result b/mysql-test/suite/rocksdb_sys_vars/r/rocksdb_new_table_reader_for_compaction_inputs_basic.result new file mode 100644 index 000000000..c2daec327 --- /dev/null +++ b/mysql-test/suite/rocksdb_sys_vars/r/rocksdb_new_table_reader_for_compaction_inputs_basic.result @@ -0,0 +1,7 @@ +SET @start_global_value = @@global.ROCKSDB_NEW_TABLE_READER_FOR_COMPACTION_INPUTS; +SELECT @start_global_value; +@start_global_value +0 +"Trying to set variable @@global.ROCKSDB_NEW_TABLE_READER_FOR_COMPACTION_INPUTS to 444. It should fail because it is readonly." +SET @@global.ROCKSDB_NEW_TABLE_READER_FOR_COMPACTION_INPUTS = 444; +ERROR HY000: Variable 'rocksdb_new_table_reader_for_compaction_inputs' is a read only variable -- Gitee From 0bc61c6db01ea22559f80115505ac185efe91ad3 Mon Sep 17 00:00:00 2001 From: ccf <15848426+goldendbccf123@user.noreply.gitee.com> Date: Thu, 29 May 2025 10:20:10 +0800 Subject: [PATCH 2/3] New files: rocksdb_use_default_sk_cf_basic.result, rocksdb_use_direct_io_for_flush_and_compaction_basic.result --- .../r/rocksdb_use_default_sk_cf_basic.result | 7 +++++++ ...sdb_use_direct_io_for_flush_and_compaction_basic.result | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 mysql-test/suite/rocksdb_sys_vars/r/rocksdb_use_default_sk_cf_basic.result create mode 100644 mysql-test/suite/rocksdb_sys_vars/r/rocksdb_use_direct_io_for_flush_and_compaction_basic.result diff --git a/mysql-test/suite/rocksdb_sys_vars/r/rocksdb_use_default_sk_cf_basic.result b/mysql-test/suite/rocksdb_sys_vars/r/rocksdb_use_default_sk_cf_basic.result new file mode 100644 index 000000000..b250031d0 --- /dev/null +++ b/mysql-test/suite/rocksdb_sys_vars/r/rocksdb_use_default_sk_cf_basic.result @@ -0,0 +1,7 @@ +SET @start_global_value = @@global.ROCKSDB_USE_DEFAULT_SK_CF; +SELECT @start_global_value; +@start_global_value +0 +"Trying to set variable @@global.ROCKSDB_USE_DEFAULT_SK_CF to 444. It should fail because it is readonly." +SET @@global.ROCKSDB_USE_DEFAULT_SK_CF = 444; +ERROR HY000: Variable 'rocksdb_use_default_sk_cf' is a read only variable diff --git a/mysql-test/suite/rocksdb_sys_vars/r/rocksdb_use_direct_io_for_flush_and_compaction_basic.result b/mysql-test/suite/rocksdb_sys_vars/r/rocksdb_use_direct_io_for_flush_and_compaction_basic.result new file mode 100644 index 000000000..219cdb731 --- /dev/null +++ b/mysql-test/suite/rocksdb_sys_vars/r/rocksdb_use_direct_io_for_flush_and_compaction_basic.result @@ -0,0 +1,7 @@ +SET @start_global_value = @@global.ROCKSDB_USE_DIRECT_IO_FOR_FLUSH_AND_COMPACTION; +SELECT @start_global_value; +@start_global_value +0 +"Trying to set variable @@global.ROCKSDB_USE_DIRECT_IO_FOR_FLUSH_AND_COMPACTION to 444. It should fail because it is readonly." +SET @@global.ROCKSDB_USE_DIRECT_IO_FOR_FLUSH_AND_COMPACTION = 444; +ERROR HY000: Variable 'rocksdb_use_direct_io_for_flush_and_compaction' is a read only variable -- Gitee From 18f4ba1f7754f12eb1c8ba64ea3596a96e45776f Mon Sep 17 00:00:00 2001 From: ccf <15848426+goldendbccf123@user.noreply.gitee.com> Date: Fri, 30 May 2025 16:16:09 +0800 Subject: [PATCH 3/3] New files: rocksdb_print_snapshot_conflict_queries_basic.test, rocksdb_rate_limiter_bytes_per_sec_basic.test --- ...print_snapshot_conflict_queries_basic.test | 19 ++++++ ...ksdb_rate_limiter_bytes_per_sec_basic.test | 64 +++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 mysql-test/suite/rocksdb_sys_vars/t/rocksdb_print_snapshot_conflict_queries_basic.test create mode 100644 mysql-test/suite/rocksdb_sys_vars/t/rocksdb_rate_limiter_bytes_per_sec_basic.test diff --git a/mysql-test/suite/rocksdb_sys_vars/t/rocksdb_print_snapshot_conflict_queries_basic.test b/mysql-test/suite/rocksdb_sys_vars/t/rocksdb_print_snapshot_conflict_queries_basic.test new file mode 100644 index 000000000..28902364f --- /dev/null +++ b/mysql-test/suite/rocksdb_sys_vars/t/rocksdb_print_snapshot_conflict_queries_basic.test @@ -0,0 +1,19 @@ +--source include/have_rocksdb.inc +--source include/have_myisam.inc + +CREATE TABLE valid_values (value varchar(255)) ENGINE=myisam; +INSERT INTO valid_values VALUES(1); +INSERT INTO valid_values VALUES(0); +INSERT INTO valid_values VALUES('on'); + +CREATE TABLE invalid_values (value varchar(255)) ENGINE=myisam; +INSERT INTO invalid_values VALUES('\'aaa\''); +INSERT INTO invalid_values VALUES('\'bbb\''); + +--let $sys_var=ROCKSDB_PRINT_SNAPSHOT_CONFLICT_QUERIES +--let $read_only=0 +--let $session=0 +--source ../include/rocksdb_sys_var.inc + +DROP TABLE valid_values; +DROP TABLE invalid_values; diff --git a/mysql-test/suite/rocksdb_sys_vars/t/rocksdb_rate_limiter_bytes_per_sec_basic.test b/mysql-test/suite/rocksdb_sys_vars/t/rocksdb_rate_limiter_bytes_per_sec_basic.test new file mode 100644 index 000000000..84e466866 --- /dev/null +++ b/mysql-test/suite/rocksdb_sys_vars/t/rocksdb_rate_limiter_bytes_per_sec_basic.test @@ -0,0 +1,64 @@ +--source include/have_rocksdb.inc +--source include/have_myisam.inc + +# Attempt to set the value - this should generate a warning as we can't set it to or from 0 +SET @@global.rocksdb_rate_limiter_bytes_per_sec = 10000; + +# Now shut down and come back up with the rate limiter enabled and retest setting the variable + +# Write file to make mysql-test-run.pl expect the "crash", but don't restart the +# server until it is told to +--let $_server_id= `SELECT @@server_id` +--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect +--exec echo "wait" >$_expect_file_name + +# Send shutdown to the connected server and give it 10 seconds to die before +# zapping it +shutdown_server 10; + +# Attempt to restart the server with the rate limiter on +--exec echo "restart:--rocksdb_rate_limiter_bytes_per_sec=10000" >$_expect_file_name +--sleep 5 + +# Wait for reconnect +--enable_reconnect +--source include/wait_until_connected_again.inc +--disable_reconnect + +# The valid_values table lists the values that we want to make sure that the system will allow +# us to set for rocksdb_rate_limiter_bytes_per_sec +CREATE TABLE valid_values (value varchar(255)) ENGINE=myisam; +INSERT INTO valid_values VALUES(1), (1000), (1000000), (1000000000), (1000000000000); + +# The invalid_values table lists the values that we don't want to allow for the variable +CREATE TABLE invalid_values (value varchar(255)) ENGINE=myisam; +INSERT INTO invalid_values VALUES('\'aaa\''), (3.14); + +# Test all the valid and invalid values +--let $sys_var=ROCKSDB_RATE_LIMITER_BYTES_PER_SEC +--let $session=0 +--source ../include/rocksdb_sys_var.inc + +DROP TABLE valid_values; +DROP TABLE invalid_values; + +# Zero is an invalid value if the rate limiter is turned on, but it won't be rejected by the +# SET command but will generate a warning. + +# Attempt to set the value to 0 - this should generate a warning as we can't set it to or from 0 +SET @@global.rocksdb_rate_limiter_bytes_per_sec = 0; + +# Attempt to set the value to -1 - this should first truncate to 0 and then generate a warning as +# we can't set it to or from 0 +SET @@global.rocksdb_rate_limiter_bytes_per_sec = -1; + +# Restart the server without the rate limiter +--exec echo "wait" >$_expect_file_name +shutdown_server 10; +--exec echo "restart" >$_expect_file_name +--sleep 5 + +# Wait for reconnect +--enable_reconnect +--source include/wait_until_connected_again.inc +--disable_reconnect -- Gitee