summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonty <monty@mariadb.org>2022-04-05 22:50:42 +0300
committerMonty <monty@mariadb.org>2022-11-16 15:48:53 +0200
commit162c3b395fdc7b9b15e588d39640259a1ed96850 (patch)
tree33c4e4b939a0576b13f4e47430c79443ab98377d
parent02e12b8eb6cf2395e8da80d6cb860231437c39e1 (diff)
downloadmariadb-git-162c3b395fdc7b9b15e588d39640259a1ed96850.tar.gz
Align elements in struct system_variables
This reduces the size of THD from 1128 to 1104 (24 bytes) Note much but will still save some memory accesses
-rw-r--r--sql/sql_class.h77
1 files changed, 38 insertions, 39 deletions
diff --git a/sql/sql_class.h b/sql/sql_class.h
index 8274a2db5e9..07c03f47aab 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -670,7 +670,6 @@ typedef struct system_variables
ulonglong max_statement_time;
ulonglong optimizer_switch;
ulonglong optimizer_trace;
- ulong optimizer_trace_max_mem_size;
sql_mode_t sql_mode; ///< which non-standard SQL behaviour should be enabled
sql_mode_t old_behavior; ///< which old SQL behaviour should be enabled
ulonglong option_bits; ///< OPTION_xxx constants, e.g. OPTION_PROFILING
@@ -684,6 +683,7 @@ typedef struct system_variables
ulonglong sortbuff_size;
ulonglong default_regex_flags;
ulonglong max_mem_used;
+ ulonglong max_rowid_filter_size;
/**
Place holders to store Multi-source variables in sys_var.cc during
@@ -695,11 +695,13 @@ typedef struct system_variables
double optimizer_index_block_copy_cost, optimizer_key_next_find_cost;
double optimizer_row_copy_cost, optimizer_key_copy_cost;
double optimizer_where_cost, optimizer_key_cmp_cost;
+ double long_query_time_double, max_statement_time_double;
+ double sample_percentage;
ha_rows select_limit;
ha_rows max_join_size;
ha_rows expensive_subquery_limit;
- ulong auto_increment_increment, auto_increment_offset;
+
#ifdef WITH_WSREP
/*
Stored values of the auto_increment_increment and auto_increment_offset
@@ -708,10 +710,12 @@ typedef struct system_variables
original values (which are set by the user) by calculated ones (which
are based on the cluster size):
*/
+ ulonglong wsrep_gtid_seq_no;
ulong saved_auto_increment_increment, saved_auto_increment_offset;
ulong saved_lock_wait_timeout;
- ulonglong wsrep_gtid_seq_no;
#endif /* WITH_WSREP */
+
+ ulong auto_increment_increment, auto_increment_offset;
ulong column_compression_zlib_strategy;
ulong lock_wait_timeout;
ulong join_cache_level;
@@ -734,8 +738,8 @@ typedef struct system_variables
ulong optimizer_search_depth;
ulong optimizer_selectivity_sampling_limit;
ulong optimizer_use_condition_selectivity;
+ ulong optimizer_trace_max_mem_size;
ulong use_stat_tables;
- double sample_percentage;
ulong histogram_size;
ulong histogram_type;
ulong preload_buff_size;
@@ -766,6 +770,15 @@ typedef struct system_variables
ulong updatable_views_with_limit;
ulong alter_algorithm;
ulong server_id;
+ ulong session_track_transaction_info;
+ ulong threadpool_priority;
+ ulong optimizer_max_sel_arg_weight;
+ ulong vers_alter_history;
+
+ /* deadlock detection */
+ ulong wt_timeout_short, wt_deadlock_search_depth_short;
+ ulong wt_timeout_long, wt_deadlock_search_depth_long;
+
/**
In slave thread we need to know in behalf of which
thread the query is being run to replicate temp tables properly
@@ -781,6 +794,12 @@ typedef struct system_variables
uint group_concat_max_len;
uint eq_range_index_dive_limit;
uint optimizer_cache_hit_ratio; // Stored in handler::optimizer_cache_cost
+ uint idle_transaction_timeout;
+ uint idle_readonly_transaction_timeout;
+ uint idle_write_transaction_timeout;
+ uint column_compression_threshold;
+ uint column_compression_zlib_level;
+ uint in_subquery_conversion_threshold;
int max_user_connections;
/**
@@ -801,6 +820,17 @@ typedef struct system_variables
my_bool binlog_annotate_row_events;
my_bool binlog_direct_non_trans_update;
my_bool column_compression_zlib_wrap;
+ my_bool sysdate_is_now;
+ my_bool wsrep_on;
+ my_bool wsrep_causal_reads;
+ my_bool wsrep_dirty_reads;
+ my_bool pseudo_slave_mode;
+ my_bool session_track_schema;
+ my_bool session_track_state_change;
+#ifdef USER_VAR_TRACKING
+ my_bool session_track_user_variables;
+#endif // USER_VAR_TRACKING
+ my_bool tcp_nodelay;
plugin_ref table_plugin;
plugin_ref tmp_table_plugin;
@@ -827,47 +857,16 @@ typedef struct system_variables
MY_LOCALE *lc_time_names;
Time_zone *time_zone;
+ char *session_track_system_variables;
- my_bool sysdate_is_now;
-
- /* deadlock detection */
- ulong wt_timeout_short, wt_deadlock_search_depth_short;
- ulong wt_timeout_long, wt_deadlock_search_depth_long;
-
- my_bool wsrep_on;
- my_bool wsrep_causal_reads;
- uint wsrep_sync_wait;
- ulong wsrep_retry_autocommit;
+ /* Some wsrep variables */
ulonglong wsrep_trx_fragment_size;
+ ulong wsrep_retry_autocommit;
ulong wsrep_trx_fragment_unit;
ulong wsrep_OSU_method;
- my_bool wsrep_dirty_reads;
- double long_query_time_double, max_statement_time_double;
-
- my_bool pseudo_slave_mode;
-
- char *session_track_system_variables;
- ulong session_track_transaction_info;
- my_bool session_track_schema;
- my_bool session_track_state_change;
-#ifdef USER_VAR_TRACKING
- my_bool session_track_user_variables;
-#endif // USER_VAR_TRACKING
- my_bool tcp_nodelay;
-
- ulong threadpool_priority;
-
- uint idle_transaction_timeout;
- uint idle_readonly_transaction_timeout;
- uint idle_write_transaction_timeout;
- uint column_compression_threshold;
- uint column_compression_zlib_level;
- uint in_subquery_conversion_threshold;
- ulong optimizer_max_sel_arg_weight;
- ulonglong max_rowid_filter_size;
+ uint wsrep_sync_wait;
vers_asof_timestamp_t vers_asof_timestamp;
- ulong vers_alter_history;
my_bool binlog_alter_two_phase;
} SV;