MySQL 5.7 Reference Manual Including MySQL NDB Cluster 7.5 and NDB Cluster 7.6
On a multithreaded replica, the Performance Schema tables
replication_applier_status_by_coordinator
and
replication_applier_status_by_worker
show status information for the replica's coordinator thread and
applier worker threads respectively. For a replica with multiple
channels, the threads for each channel are identified.
A multithreaded replica's coordinator thread also prints statistics to the replica's error log on a regular basis if the verbosity setting is set to display informational messages. The statistics are printed depending on the volume of events that the coordinator thread has assigned to applier worker threads, with a maximum frequency of once every 120 seconds. The message lists the following statistics for the relevant replication channel, or the default replication channel (which is not named):
The difference in seconds between the current time and the last time this information was printed to the error log.
The total number of events that the coordinator thread has queued to all applier worker threads since the coordinator thread was started.
The current number of events that are queued to any of the applier worker threads in excess of the overrun level, which is set at 90% of the maximum queue length of 16384 events. If this value is zero, no applier worker threads are operating at the upper limit of their capacity.
The number of times that the coordinator thread had to wait to schedule an event because an applier worker thread's queue was full. If this value is zero, no applier worker threads exhausted their capacity.
The number of times that the coordinator thread had to
wait to schedule an event because the
slave_pending_jobs_size_max
limit had been reached. This system variable sets the
maximum amount of memory (in bytes) available to applier
worker thread queues holding events not yet applied. If an
unusually large event exceeds this size, the transaction
is held until all the applier worker threads have empty
queues, and then processed. All subsequent transactions
are held until the large transaction has been completed.
The number of nanoseconds that the coordinator thread had
to wait to schedule an event because a transaction that
the event depended on had not yet been committed. If
slave_parallel_type
is
set to DATABASE
(rather than
LOGICAL_CLOCK
), this value is always
zero.
The number of times that the coordinator thread slept for
a short period, which it might do in two situations. The
first situation is where the coordinator thread assigns an
event and finds the applier worker thread's queue is
filled beyond the underrun level of 10% of the maximum
queue length, in which case it sleeps for a maximum of 1
millisecond. The second situation is where
slave_parallel_type
is
set to LOGICAL_CLOCK
and the
coordinator thread needs to assign the first event of a
transaction to an applier worker thread's queue, it only
does this to a worker with an empty queue, so if no queues
are empty, the coordinator thread sleeps until one becomes
empty.
The number of nanoseconds that the coordinator thread
slept while waiting for an empty applier worker thread
queue (that is, in the second situation described above,
where slave_parallel_type
is set to LOGICAL_CLOCK
and the first
event of a transaction needs to be assigned).