Improvement on processlist:

- table is populated only if command includes "stats_mysql_processlist"
- new command state "Delay"
pull/317/head
René Cannaò 11 years ago
parent 5ffea879b4
commit 2fc393f743

@ -1178,6 +1178,8 @@ void MySQL_Thread::run() {
rc=poll(mypolls.fds,mypolls.len, ( mypolls.poll_timeout ? ( mypolls.poll_timeout/1000 < (unsigned int) mysql_thread___poll_timeout ? mypolls.poll_timeout/1000 : mysql_thread___poll_timeout ) : mysql_thread___poll_timeout ) );
proxy_debug(PROXY_DEBUG_NET,5,"%s\n", "Returning poll");
curtime=monotonic_time();
spin_wrlock(&thread_mutex);
mypolls.poll_timeout=0; // always reset this to 0 . If a session needs a specific timeout, it will set this one
@ -1646,7 +1648,11 @@ SQLite3_result * MySQL_Threads_Handler::SQL3_Processlist() {
pta[7]=strdup("Connect");
break;
case PROCESSING_QUERY:
pta[7]=strdup("Query");
if (sess->pause_until > sess->thread->curtime) {
pta[7]=strdup("Delay");
} else {
pta[7]=strdup("Query");
}
break;
case WAITING_CLIENT_DATA:
pta[7]=strdup("Sleep");

@ -820,11 +820,6 @@ void admin_session_handler(MySQL_Session *sess, ProxySQL_Admin *pa, PtrSize_t *p
//fprintf(stderr,"%s----\n",query_no_space);
pthread_mutex_lock(&admin_mutex);
ProxySQL_Admin *SPA=(ProxySQL_Admin *)pa;
SPA->stats___mysql_processlist();
pthread_mutex_unlock(&admin_mutex);
if (sess->stats==false) {
if ((query_no_space_length>8) && (!strncasecmp("PROXYSQL ", query_no_space, 8))) {
proxy_debug(PROXY_DEBUG_ADMIN, 4, "Received PROXYSQL command\n");
@ -836,6 +831,15 @@ void admin_session_handler(MySQL_Session *sess, ProxySQL_Admin *pa, PtrSize_t *p
run_query=admin_handler_command_load_or_save(query_no_space, query_no_space_length, sess, pa, &query, &query_length);
goto __run_query;
}
if (strstr(query_no_space,"stats_mysql_processlist")) {
pthread_mutex_lock(&admin_mutex);
ProxySQL_Admin *SPA=(ProxySQL_Admin *)pa;
SPA->stats___mysql_processlist();
pthread_mutex_unlock(&admin_mutex);
goto __run_query;
}
}
// FIXME: this should be removed, it is just a POC for issue #253 . What is important is the call to GloMTH->signal_all_threads();

Loading…
Cancel
Save