diff options
author | Sergey Vojtovich <svoj@mariadb.org> | 2020-04-15 20:38:25 +0400 |
---|---|---|
committer | Sergey Vojtovich <svoj@mariadb.org> | 2020-04-15 21:05:21 +0400 |
commit | 4bd9f82a8f58a462f44bec67d17e93079c669e28 (patch) | |
tree | 36466a76baa095935032e29a5ef67219a6adfbde | |
parent | 10cdf5230d0c8275830e9446c915651691219b39 (diff) | |
download | mariadb-git-4bd9f82a8f58a462f44bec67d17e93079c669e28.tar.gz |
slave_open_temp_tables to Atomic_counter
-rw-r--r-- | include/my_pthread.h | 10 | ||||
-rw-r--r-- | sql/mysqld.cc | 18 | ||||
-rw-r--r-- | sql/mysqld.h | 2 | ||||
-rw-r--r-- | sql/sql_plugin.h | 2 | ||||
-rw-r--r-- | sql/sql_show.cc | 5 | ||||
-rw-r--r-- | sql/temporary_tables.cc | 6 |
6 files changed, 12 insertions, 31 deletions
diff --git a/include/my_pthread.h b/include/my_pthread.h index ee8ab75b847..422be8e4b4a 100644 --- a/include/my_pthread.h +++ b/include/my_pthread.h @@ -817,16 +817,6 @@ extern uint thd_lib_detected; #define statistic_sub(V,C,L) (V)-=(C) #endif /* SAFE_STATISTICS */ -static inline void thread_safe_increment32(int32 *value) -{ - (void) my_atomic_add32_explicit(value, 1, MY_MEMORY_ORDER_RELAXED); -} - -static inline void thread_safe_decrement32(int32 *value) -{ - (void) my_atomic_add32_explicit(value, -1, MY_MEMORY_ORDER_RELAXED); -} - /* No locking needed, the counter is owned by the thread */ diff --git a/sql/mysqld.cc b/sql/mysqld.cc index a0cad67b2e6..43f4e7d07fb 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -459,7 +459,7 @@ uint lower_case_table_names; ulong tc_heuristic_recover= 0; Atomic_counter<uint32_t> thread_count; bool shutdown_wait_for_slaves; -int32 slave_open_temp_tables; +Atomic_counter<uint32_t> slave_open_temp_tables; ulong thread_created; ulong back_log, connect_timeout, concurrency, server_id; ulong what_to_log; @@ -7198,18 +7198,6 @@ static int show_slave_running(THD *thd, SHOW_VAR *var, char *buff, } -/* How many slaves are connected to this master */ - -static int show_slaves_connected(THD *thd, SHOW_VAR *var, char *buff) -{ - - var->type= SHOW_LONGLONG; - var->value= buff; - *((longlong*) buff)= uint32_t(binlog_dump_thread_count); - return 0; -} - - /* How many masters this slave is connected to */ @@ -7785,9 +7773,9 @@ SHOW_VAR status_vars[]= { {"Select_range", (char*) offsetof(STATUS_VAR, select_range_count_), SHOW_LONG_STATUS}, {"Select_range_check", (char*) offsetof(STATUS_VAR, select_range_check_count_), SHOW_LONG_STATUS}, {"Select_scan", (char*) offsetof(STATUS_VAR, select_scan_count_), SHOW_LONG_STATUS}, - {"Slave_open_temp_tables", (char*) &slave_open_temp_tables, SHOW_INT}, + {"Slave_open_temp_tables", (char*) &slave_open_temp_tables, SHOW_ATOMIC_COUNTER_UINT32_T}, #ifdef HAVE_REPLICATION - {"Slaves_connected", (char*) &show_slaves_connected, SHOW_SIMPLE_FUNC }, + {"Slaves_connected", (char*) &binlog_dump_thread_count, SHOW_ATOMIC_COUNTER_UINT32_T}, {"Slaves_running", (char*) &show_slaves_running, SHOW_SIMPLE_FUNC }, {"Slave_connections", (char*) offsetof(STATUS_VAR, com_register_slave), SHOW_LONG_STATUS}, {"Slave_heartbeat_period", (char*) &show_heartbeat_period, SHOW_SIMPLE_FUNC}, diff --git a/sql/mysqld.h b/sql/mysqld.h index 4d502afa428..bd45ff7b798 100644 --- a/sql/mysqld.h +++ b/sql/mysqld.h @@ -221,7 +221,7 @@ extern ulong delayed_insert_timeout; extern ulong delayed_insert_limit, delayed_queue_size; extern ulong delayed_insert_threads, delayed_insert_writes; extern ulong delayed_rows_in_use,delayed_insert_errors; -extern int32 slave_open_temp_tables; +extern Atomic_counter<uint32_t> slave_open_temp_tables; extern ulonglong query_cache_size; extern ulong query_cache_limit; extern ulong query_cache_min_res_unit; diff --git a/sql/sql_plugin.h b/sql/sql_plugin.h index 352d1e22ac4..c9c75d07a6e 100644 --- a/sql/sql_plugin.h +++ b/sql/sql_plugin.h @@ -25,7 +25,7 @@ SHOW_LONG_STATUS, SHOW_DOUBLE_STATUS, \ SHOW_HAVE, SHOW_MY_BOOL, SHOW_HA_ROWS, SHOW_SYS, \ SHOW_LONG_NOFLUSH, SHOW_LONGLONG_STATUS, SHOW_UINT32_STATUS, \ - SHOW_LEX_STRING + SHOW_LEX_STRING, SHOW_ATOMIC_COUNTER_UINT32_T #include "mariadb.h" #undef SHOW_always_last diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 46d4685e0db..18fc5ea70d7 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -3692,6 +3692,11 @@ const char* get_one_variable(THD *thd, end= pos + ls->length; break; } + case SHOW_ATOMIC_COUNTER_UINT32_T: + end= int10_to_str( + static_cast<long>(*static_cast<Atomic_counter<uint32_t>*>(value)), + buff, 10); + break; case SHOW_UNDEF: break; // Return empty string case SHOW_SYS: // Cannot happen diff --git a/sql/temporary_tables.cc b/sql/temporary_tables.cc index 2e0f0a4918e..79a84c1a0f7 100644 --- a/sql/temporary_tables.cc +++ b/sql/temporary_tables.cc @@ -1137,9 +1137,7 @@ TABLE *THD::open_temporary_table(TMP_TABLE_SHARE *share, /* Increment Slave_open_temp_table_definitions status variable count. */ if (rgi_slave) - { - thread_safe_increment32(&slave_open_temp_tables); - } + slave_open_temp_tables++; DBUG_PRINT("tmptable", ("Opened table: '%s'.'%s table: %p", table->s->db.str, @@ -1245,7 +1243,7 @@ void THD::close_temporary_table(TABLE *table) /* Natural invariant of temporary_tables */ DBUG_ASSERT(slave_open_temp_tables || !temporary_tables); /* Decrement Slave_open_temp_table_definitions status variable count. */ - thread_safe_decrement32(&slave_open_temp_tables); + slave_open_temp_tables--; } DBUG_VOID_RETURN; |