summaryrefslogtreecommitdiff
path: root/sql/rpl_reporting.h
diff options
context:
space:
mode:
authorSujatha <sujatha.sivakumar@mariadb.com>2021-04-08 15:49:32 +0530
committerSujatha <sujatha.sivakumar@mariadb.com>2021-04-08 17:19:51 +0530
commit94f1d0f84d58535e6f14a33b91daf7f47da4a29e (patch)
tree80f215d50e3eb6a3df7559de49b2bfeb8ae3592e /sql/rpl_reporting.h
parent7c524d4414e1608a54a8affbcce35d08c1ceaa59 (diff)
downloadmariadb-git-94f1d0f84d58535e6f14a33b91daf7f47da4a29e.tar.gz
MDEV-20220: Merge 5.7 P_S replication table 'replication_applier_status_by_worker
Step1: ===== Backport 'replication_applier_status_by_worker' from upstream. Iterate through rpl_parallel_thread_pool and display slave worker thread specific information as part of 'replication_applier_status_by_worker' table. --------------------------------------------------------------------------- |Column Name: | Description: | |-------------------------------------------------------------------------| | | | |CHANNEL_NAME | Name of replication channel through which the | | | transaction is received. | | | | |THREAD_ID | Thread_Id as displayed in 'performance_schema. | | | threads' table for thread with name | | | 'thread/sql/rpl_parallel_thread' | | | | | | THREAD_ID will be NULL when worker threads are | | | stopped due to an error/force stop | | | | |SERVICE_STATE | Thread is running or not | | | | |LAST_SEEN_TRANSACTION | Last GTID executed by worker | | | | |LAST_ERROR_NUMBER | Last Error that occured on a particular worker | | | | |LAST_ERROR_MESSAGE | Last error specific message | | | | |LAST_ERROR_TIMESTAMP | Time stamp of last error | | | | --------------------------------------------------------------------------- CHANNEL_NAME will be empty when the worker has not processed any transaction. Channel_name points to valid source channel_name when it is processing a transaction/event group.
Diffstat (limited to 'sql/rpl_reporting.h')
-rw-r--r--sql/rpl_reporting.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/sql/rpl_reporting.h b/sql/rpl_reporting.h
index 62b934c1527..46a71ff5ad6 100644
--- a/sql/rpl_reporting.h
+++ b/sql/rpl_reporting.h
@@ -41,6 +41,7 @@ public:
@param thread_name Printable name of the slave thread that is reporting.
*/
Slave_reporting_capability(char const *thread_name);
+ mutable my_thread_id err_thread_id;
/**
Writes a message and, if it's an error message, to Last_Error
@@ -81,12 +82,35 @@ public:
{
number= 0;
message[0]= '\0';
+ timestamp[0]= '\0';
+ }
+ void update_timestamp()
+ {
+ struct tm tm_tmp;
+ struct tm *start;
+
+ skr= my_time(0);
+ localtime_r(&skr, &tm_tmp);
+ start=&tm_tmp;
+
+ sprintf(timestamp, "%02d%02d%02d %02d:%02d:%02d",
+ start->tm_year % 100,
+ start->tm_mon+1,
+ start->tm_mday,
+ start->tm_hour,
+ start->tm_min,
+ start->tm_sec);
+ timestamp[15]= '\0';
}
/** Error code */
uint32 number;
/** Error message */
char message[MAX_SLAVE_ERRMSG];
+ /** Error timestamp as string */
+ char timestamp[64];
+ /** Error timestamp as time_t variable. Used in performance_schema */
+ time_t skr;
};
Error const& last_error() const { return m_last_error; }