MySQL  8.0.20
Source Code Documentation
pfs_visitor.h
Go to the documentation of this file.
1 /* Copyright (c) 2010, 2020, Oracle and/or its affiliates. All rights reserved.
2 
3  This program is free software; you can redistribute it and/or modify
4  it under the terms of the GNU General Public License, version 2.0,
5  as published by the Free Software Foundation.
6 
7  This program is also distributed with certain software (including
8  but not limited to OpenSSL) that is licensed under separate terms,
9  as designated in a particular file or component or in included license
10  documentation. The authors of MySQL hereby grant you an additional
11  permission to link the program and your derivative works with the
12  separately licensed software that they have included with MySQL.
13 
14  This program is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License, version 2.0, for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with this program; if not, write to the Free Software
21  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22 
23 #ifndef PFS_VISITOR_H
24 #define PFS_VISITOR_H
25 
26 #include <sys/types.h>
27 
28 #include "my_compiler.h"
29 #include "mysqld_error.h"
31 
32 struct System_status_var;
33 
34 /**
35  @file storage/perfschema/pfs_visitor.h
36  Visitors (declarations).
37 */
38 
39 /**
40  @addtogroup performance_schema_buffers
41  @{
42 */
43 
44 struct PFS_user;
45 struct PFS_account;
46 struct PFS_host;
47 struct PFS_thread;
48 struct PFS_instr_class;
49 struct PFS_mutex_class;
50 struct PFS_rwlock_class;
51 struct PFS_cond_class;
52 struct PFS_file_class;
53 struct PFS_socket_class;
54 struct PFS_memory_class;
55 struct PFS_table_share;
56 struct PFS_mutex;
57 struct PFS_rwlock;
58 struct PFS_cond;
59 struct PFS_file;
60 struct PFS_table;
61 struct PFS_stage_class;
62 struct PFS_statement_class;
64 struct PFS_error_class;
65 struct PFS_socket;
67 
68 /**
69  Interface class to visit groups of connections.
70  @sa PFS_connection_iterator
71 */
73  public:
76  /** Visit all connections. */
77  virtual void visit_global() {}
78  /** Visit all connections of a host. */
79  virtual void visit_host(PFS_host *) {}
80  /** Visit all connections of a user+host. */
81  virtual void visit_account(PFS_account *) {}
82  /** Visit all connections of a user. */
83  virtual void visit_user(PFS_user *) {}
84  /** Visit a thread. */
85  virtual void visit_thread(PFS_thread *) {}
86  /** Visit a @c THD associated with a thread. */
87  virtual void visit_THD(THD *) {}
88 };
89 
90 /**
91  Iterator over groups of connections.
92  @sa PFS_connection_visitor
93 */
95  public:
96  /**
97  Visit all connections.
98  @param with_hosts when true, visit also all hosts.
99  @param with_users when true, visit also all users.
100  @param with_accounts when true, visit also all user+host.
101  @param with_threads when true, visit also all threads.
102  @param with_THDs when true, visit also all threads THD.
103  @param visitor the visitor to call
104  */
105  static void visit_global(bool with_hosts, bool with_users, bool with_accounts,
106  bool with_threads, bool with_THDs,
107  PFS_connection_visitor *visitor);
108  /**
109  Visit all connections of a host.
110  @param host the host to visit.
111  @param with_accounts when true, visit also all related user+host.
112  @param with_threads when true, visit also all related threads.
113  @param with_THDs when true, visit also all related threads THD.
114  @param visitor the visitor to call
115  */
116  static void visit_host(PFS_host *host, bool with_accounts, bool with_threads,
117  bool with_THDs, PFS_connection_visitor *visitor);
118  /**
119  Visit all connections of a user.
120  @param user the user to visit.
121  @param with_accounts when true, visit also all related user+host.
122  @param with_threads when true, visit also all related threads.
123  @param with_THDs when true, visit also all related threads THD.
124  @param visitor the visitor to call
125  */
126  static void visit_user(PFS_user *user, bool with_accounts, bool with_threads,
127  bool with_THDs, PFS_connection_visitor *visitor);
128  /**
129  Visit all connections of a user+host.
130  @param account the user+host to visit.
131  @param with_threads when true, visit also all related threads.
132  @param with_THDs when true, visit also all related threads THD.
133  @param visitor the visitor to call
134  */
135  static void visit_account(PFS_account *account, bool with_threads,
136  bool with_THDs, PFS_connection_visitor *visitor);
137  /**
138  Visit a thread or connection.
139  @param thread the thread to visit.
140  @param visitor the visitor to call
141  */
142  static inline void visit_thread(PFS_thread *thread,
143  PFS_connection_visitor *visitor) {
144  visitor->visit_thread(thread);
145  }
146 
147  /**
148  Visit @c THD.
149  @param thd the THD to visit.
150  @param visitor the visitor to call.
151  */
152  static void visit_THD(THD *thd, PFS_connection_visitor *visitor);
153 };
154 
155 /**
156  Interface class to visit groups of instrumentation point instances.
157  @sa PFS_instance_iterator
158 */
160  public:
163  /** Visit a mutex class. */
165  /** Visit a rwlock class. */
167  /** Visit a cond class. */
168  virtual void visit_cond_class(PFS_cond_class *) {}
169  /** Visit a file class. */
170  virtual void visit_file_class(PFS_file_class *) {}
171  /** Visit a socket class. */
173  /** Visit a mutex instance. */
174  virtual void visit_mutex(PFS_mutex *) {}
175  /** Visit a rwlock instance. */
176  virtual void visit_rwlock(PFS_rwlock *) {}
177  /** Visit a cond instance. */
178  virtual void visit_cond(PFS_cond *) {}
179  /** Visit a file instance. */
180  virtual void visit_file(PFS_file *) {}
181  /** Visit a socket instance. */
182  virtual void visit_socket(PFS_socket *) {}
183 };
184 
185 /**
186  Iterator over groups of instrumentation point instances.
187  @sa PFS_instance_visitor
188 */
190  public:
191  static void visit_all(PFS_instance_visitor *visitor);
192  static void visit_all_mutex(PFS_instance_visitor *visitor);
193  static void visit_all_mutex_classes(PFS_instance_visitor *visitor);
194  static void visit_all_mutex_instances(PFS_instance_visitor *visitor);
195  static void visit_all_rwlock(PFS_instance_visitor *visitor);
196  static void visit_all_rwlock_classes(PFS_instance_visitor *visitor);
197  static void visit_all_rwlock_instances(PFS_instance_visitor *visitor);
198  static void visit_all_cond(PFS_instance_visitor *visitor);
199  static void visit_all_cond_classes(PFS_instance_visitor *visitor);
200  static void visit_all_cond_instances(PFS_instance_visitor *visitor);
201  static void visit_all_file(PFS_instance_visitor *visitor);
202  static void visit_all_file_classes(PFS_instance_visitor *visitor);
203  static void visit_all_file_instances(PFS_instance_visitor *visitor);
204 
205  /**
206  Visit a mutex class and related instances.
207  @param klass the klass to visit.
208  @param visitor the visitor to call
209  */
210  static void visit_mutex_instances(PFS_mutex_class *klass,
211  PFS_instance_visitor *visitor);
212  /**
213  Visit a rwlock class and related instances.
214  @param klass the klass to visit.
215  @param visitor the visitor to call
216  */
217  static void visit_rwlock_instances(PFS_rwlock_class *klass,
218  PFS_instance_visitor *visitor);
219  /**
220  Visit a cond class and related instances.
221  @param klass the klass to visit.
222  @param visitor the visitor to call
223  */
224  static void visit_cond_instances(PFS_cond_class *klass,
225  PFS_instance_visitor *visitor);
226  /**
227  Visit a file class and related instances.
228  @param klass the klass to visit.
229  @param visitor the visitor to call
230  */
231  static void visit_file_instances(PFS_file_class *klass,
232  PFS_instance_visitor *visitor);
233  /**
234  Visit a socket class and related instances.
235  @param klass the klass to visit.
236  @param visitor the visitor to call
237  */
238  static void visit_socket_instances(PFS_socket_class *klass,
239  PFS_instance_visitor *visitor);
240  /**
241  Visit a socket class and related instances.
242  @param klass the klass to visit.
243  @param visitor the visitor to call
244  @param thread the owning thread to match
245  @param visit_class if true then visit the socket class
246  */
247  static void visit_socket_instances(PFS_socket_class *klass,
248  PFS_instance_visitor *visitor,
249  PFS_thread *thread,
250  bool visit_class = true);
251  /**
252  Visit an instrument class and related instances.
253  @param klass the klass to visit.
254  @param visitor the visitor to call
255  @param thread comparison criteria
256  @param visit_class if true then visit the class
257  */
258  static void visit_instances(PFS_instr_class *klass,
259  PFS_instance_visitor *visitor, PFS_thread *thread,
260  bool visit_class = true);
261 };
262 
263 /**
264  Interface class to visit groups of SQL objects.
265  @sa PFS_object_iterator
266 */
268  public:
270  virtual ~PFS_object_visitor() {}
271  /** Visit global data. */
272  virtual void visit_global() {}
273  /** Visit a table share. */
275  /** Visit a table share index. */
277  uint index MY_ATTRIBUTE((unused))) {}
278  /** Visit a table. */
279  virtual void visit_table(PFS_table *) {}
280  /** Visit a table index. */
281  virtual void visit_table_index(PFS_table *,
282  uint index MY_ATTRIBUTE((unused))) {}
283 };
284 
285 /**
286  Iterator over groups of SQL objects.
287  @sa PFS_object_visitor
288 */
290  public:
291  /** Visit all objects. */
292  static void visit_all(PFS_object_visitor *visitor);
293  /** Visit all tables and related handles. */
294  static void visit_all_tables(PFS_object_visitor *visitor);
295  /** Visit a table and related table handles. */
296  static void visit_tables(PFS_table_share *share, PFS_object_visitor *visitor);
297  /** Visit a table index and related table handles indexes. */
298  static void visit_table_indexes(PFS_table_share *share, uint index,
299  PFS_object_visitor *visitor);
300 };
301 
302 /**
303  A concrete connection visitor that aggregates
304  wait statistics for a given event_name.
305 */
307  public:
308  /** Constructor. */
310  virtual ~PFS_connection_wait_visitor();
311  virtual void visit_global();
312  virtual void visit_host(PFS_host *pfs);
313  virtual void visit_account(PFS_account *pfs);
314  virtual void visit_user(PFS_user *pfs);
315  virtual void visit_thread(PFS_thread *pfs);
316 
317  /** EVENT_NAME instrument index. */
319  /** Wait statistic collected. */
321 };
322 
323 /**
324  A concrete connection visitor that aggregates
325  wait statistics for all events.
326 */
328  public:
329  /** Constructor. */
332  virtual void visit_global();
333  virtual void visit_host(PFS_host *pfs);
334  virtual void visit_account(PFS_account *pfs);
335  virtual void visit_user(PFS_user *pfs);
336  virtual void visit_thread(PFS_thread *pfs);
337 
338  /** Wait statistic collected. */
340 
341  private:
342  void visit_connection_slice(PFS_connection_slice *pfs);
343 };
344 
345 /**
346  A concrete connection visitor that aggregates
347  stage statistics.
348 */
350  public:
351  /** Constructor. */
353  virtual ~PFS_connection_stage_visitor();
354  virtual void visit_global();
355  virtual void visit_host(PFS_host *pfs);
356  virtual void visit_account(PFS_account *pfs);
357  virtual void visit_user(PFS_user *pfs);
358  virtual void visit_thread(PFS_thread *pfs);
359 
360  /** EVENT_NAME instrument index. */
362  /** Stage statistic collected. */
364 };
365 
366 /**
367  A concrete connection visitor that aggregates
368  statement statistics for a given event_name.
369 */
371  public:
372  /** Constructor. */
375  virtual void visit_global();
376  virtual void visit_host(PFS_host *pfs);
377  virtual void visit_account(PFS_account *pfs);
378  virtual void visit_user(PFS_user *pfs);
379  virtual void visit_thread(PFS_thread *pfs);
380 
381  /** EVENT_NAME instrument index. */
383  /** Statement statistic collected. */
385 };
386 
387 /**
388  A concrete connection visitor that aggregates
389  statement statistics for all events.
390 */
392  public:
393  /** Constructor. */
396  virtual void visit_global();
397  virtual void visit_host(PFS_host *pfs);
398  virtual void visit_account(PFS_account *pfs);
399  virtual void visit_user(PFS_user *pfs);
400  virtual void visit_thread(PFS_thread *pfs);
401 
402  /** Statement statistic collected. */
404 
405  private:
406  void visit_connection_slice(PFS_connection_slice *pfs);
407 };
408 
409 /**
410  A concrete connection visitor that aggregates
411  transaction statistics for a given event_name.
412 */
414  public:
415  /** Constructor. */
418  virtual void visit_global();
419  virtual void visit_host(PFS_host *pfs);
420  virtual void visit_account(PFS_account *pfs);
421  virtual void visit_user(PFS_user *pfs);
422  virtual void visit_thread(PFS_thread *pfs);
423 
424  /** EVENT_NAME instrument index. */
426  /** Transaction statistic collected. */
428 };
429 
430 /**
431  A concrete connection visitor that aggregates
432  Error statistics for a given event_name.
433 */
435  public:
436  /** Constructor. */
438  virtual ~PFS_connection_error_visitor();
439  virtual void visit_global();
440  virtual void visit_host(PFS_host *pfs);
441  virtual void visit_account(PFS_account *pfs);
442  virtual void visit_user(PFS_user *pfs);
443  virtual void visit_thread(PFS_thread *pfs);
444 
445  /** EVENT_NAME instrument index. */
447  /** index of a specific error. */
449  /** Error statistic collected. */
451 };
452 
453 /**
454  A concrete connection visitor that aggregates
455  connection statistics.
456 */
458  public:
459  /** Constructor. */
461  virtual ~PFS_connection_stat_visitor();
462  virtual void visit_global();
463  virtual void visit_host(PFS_host *pfs);
464  virtual void visit_account(PFS_account *pfs);
465  virtual void visit_user(PFS_user *pfs);
466  virtual void visit_thread(PFS_thread *pfs);
467 
468  /** Connection statistic collected. */
470 };
471 
472 /**
473  A concrete connection visitor that aggregates
474  memory statistics for a given event_name.
475 */
477  public:
478  /** Constructor. */
481  virtual void visit_global();
482  virtual void visit_host(PFS_host *pfs);
483  virtual void visit_account(PFS_account *pfs);
484  virtual void visit_user(PFS_user *pfs);
485  virtual void visit_thread(PFS_thread *pfs);
486 
487  /** EVENT_NAME instrument index. */
489  /** Statement statistic collected. */
491 };
492 
493 /**
494  A concrete connection visitor that aggregates
495  status variables.
496 */
498  public:
499  /** Constructor. */
502  virtual void visit_global();
503  virtual void visit_host(PFS_host *pfs);
504  virtual void visit_account(PFS_account *pfs);
505  virtual void visit_user(PFS_user *pfs);
506  virtual void visit_thread(PFS_thread *pfs);
507  virtual void visit_THD(THD *thd);
508 
509  private:
511 };
512 
513 /**
514  A concrete instance visitor that aggregates
515  wait statistics.
516 */
518  public:
520  virtual ~PFS_instance_wait_visitor();
521  virtual void visit_mutex_class(PFS_mutex_class *pfs);
522  virtual void visit_rwlock_class(PFS_rwlock_class *pfs);
523  virtual void visit_cond_class(PFS_cond_class *pfs);
524  virtual void visit_file_class(PFS_file_class *pfs);
525  virtual void visit_socket_class(PFS_socket_class *pfs);
526  virtual void visit_mutex(PFS_mutex *pfs);
527  virtual void visit_rwlock(PFS_rwlock *pfs);
528  virtual void visit_cond(PFS_cond *pfs);
529  virtual void visit_file(PFS_file *pfs);
530  virtual void visit_socket(PFS_socket *pfs);
531 
532  /** Wait statistic collected. */
534 };
535 
536 /**
537  A concrete object visitor that aggregates
538  object wait statistics.
539 */
541  public:
543  virtual ~PFS_object_wait_visitor();
544  virtual void visit_global();
545  virtual void visit_table_share(PFS_table_share *pfs);
546  virtual void visit_table(PFS_table *pfs);
547 
548  /** Object wait statistic collected. */
550 };
551 
552 /**
553  A concrete object visitor that aggregates
554  table I/O wait statistics.
555 */
557  public:
559  virtual ~PFS_table_io_wait_visitor();
560  virtual void visit_global();
561  virtual void visit_table_share(PFS_table_share *pfs);
562  virtual void visit_table(PFS_table *pfs);
563 
564  /** Table I/O wait statistic collected. */
566 };
567 
568 /**
569  A concrete object visitor that aggregates
570  table I/O statistics.
571 */
573  public:
575  virtual ~PFS_table_io_stat_visitor();
576  virtual void visit_table_share(PFS_table_share *pfs);
577  virtual void visit_table(PFS_table *pfs);
578 
579  /** Table I/O statistic collected. */
581 };
582 
583 /**
584  A concrete object visitor that aggregates
585  index I/O statistics.
586 */
588  public:
590  virtual ~PFS_index_io_stat_visitor();
591  virtual void visit_table_share_index(PFS_table_share *pfs, uint index);
592  virtual void visit_table_index(PFS_table *pfs, uint index);
593 
594  /** Index I/O statistic collected. */
596 };
597 
598 /**
599  A concrete object visitor that aggregates
600  table lock wait statistics.
601 */
603  public:
605  virtual ~PFS_table_lock_wait_visitor();
606  virtual void visit_global();
607  virtual void visit_table_share(PFS_table_share *pfs);
608  virtual void visit_table(PFS_table *pfs);
609 
610  /** Table lock wait statistic collected. */
612 };
613 
614 /**
615  A concrete object visitor that aggregates
616  table lock statistics.
617 */
619  public:
621  virtual ~PFS_table_lock_stat_visitor();
622  virtual void visit_table_share(PFS_table_share *pfs);
623  virtual void visit_table(PFS_table *pfs);
624 
625  /** Table lock statistic collected. */
627 };
628 
629 /**
630  A concrete instance visitor that aggregates
631  socket wait and byte count statistics.
632 */
634  public:
637  virtual void visit_socket_class(PFS_socket_class *pfs);
638  virtual void visit_socket(PFS_socket *pfs);
639 
640  /** Wait and byte count statistics collected. */
642 };
643 
644 /**
645  A concrete instance visitor that aggregates
646  file wait and byte count statistics.
647 */
649  public:
652  virtual void visit_file_class(PFS_file_class *pfs);
653  virtual void visit_file(PFS_file *pfs);
654 
655  /** Wait and byte count statistics collected. */
657 };
658 
659 /** @} */
660 #endif
virtual void visit_socket_class(PFS_socket_class *)
Visit a socket class.
Definition: pfs_visitor.h:172
A concrete object visitor that aggregates table lock wait statistics.
Definition: pfs_visitor.h:602
virtual void visit_rwlock(PFS_rwlock *)
Visit a rwlock instance.
Definition: pfs_visitor.h:176
virtual void visit_mutex_class(PFS_mutex_class *)
Visit a mutex class.
Definition: pfs_visitor.h:164
Interface class to visit groups of SQL objects.
Definition: pfs_visitor.h:267
Statistics for statement usage.
Definition: pfs_stat.h:375
char * user
Definition: mysqladmin.cc:59
virtual void visit_file_class(PFS_file_class *)
Visit a file class.
Definition: pfs_visitor.h:170
PFS_statement_stat m_stat
Statement statistic collected.
Definition: pfs_visitor.h:384
Instrumented socket implementation.
Definition: pfs_instr.h:262
virtual void visit_cond_class(PFS_cond_class *)
Visit a cond class.
Definition: pfs_visitor.h:168
virtual ~PFS_connection_visitor()
Definition: pfs_visitor.h:75
virtual void visit_rwlock_class(PFS_rwlock_class *)
Visit a rwlock class.
Definition: pfs_visitor.h:166
Information for all instrumentation.
Definition: pfs_instr_class.h:143
PFS_single_stat m_stat
Object wait statistic collected.
Definition: pfs_visitor.h:549
Instrumentation metadata for a socket.
Definition: pfs_instr_class.h:484
PFS_single_stat m_stat
Wait statistic collected.
Definition: pfs_visitor.h:339
Statistics for table locks.
Definition: pfs_stat.h:682
Instrumentation metadata for a table share.
Definition: pfs_instr_class.h:315
Instrumentation metadata for a stage.
Definition: pfs_instr_class.h:463
PFS_instance_visitor()
Definition: pfs_visitor.h:161
A concrete connection visitor that aggregates statement statistics for a given event_name.
Definition: pfs_visitor.h:370
PFS_error_single_stat m_stat
Error statistic collected.
Definition: pfs_visitor.h:450
PFS_transaction_stat m_stat
Transaction statistic collected.
Definition: pfs_visitor.h:427
Instrumentation metadata for a memory.
Definition: pfs_instr_class.h:492
virtual void visit_account(PFS_account *)
Visit all connections of a user+host.
Definition: pfs_visitor.h:81
PFS_file_io_stat m_file_io_stat
Wait and byte count statistics collected.
Definition: pfs_visitor.h:656
Per host statistics.
Definition: pfs_host.h:65
virtual ~PFS_object_visitor()
Definition: pfs_visitor.h:270
Instrumentation metadata for an error.
Definition: pfs_instr_class.h:446
const char * host
Definition: mysqladmin.cc:58
Single table I/O statistic.
Definition: pfs_stat.h:620
Connections statistics.
Definition: pfs_stat.h:1556
Instrumentation metadata for a condition.
Definition: pfs_instr_class.h:251
uint m_error_index
index of a specific error.
Definition: pfs_visitor.h:448
virtual void visit_table_share_index(PFS_table_share *, uint index)
Visit a table share index.
Definition: pfs_visitor.h:276
Instrumentation metadata for a read write lock.
Definition: pfs_instr_class.h:241
uint m_index
EVENT_NAME instrument index.
Definition: pfs_visitor.h:318
System_status_var * m_status_vars
Definition: pfs_visitor.h:510
Statistics for a server error.
Definition: pfs_stat.h:469
PFS_single_stat m_stat
Wait statistic collected.
Definition: pfs_visitor.h:320
PFS_table_io_stat m_stat
Table I/O statistic collected.
Definition: pfs_visitor.h:580
Instrumentation metadata for a statement.
Definition: pfs_instr_class.h:474
virtual void visit_host(PFS_host *)
Visit all connections of a host.
Definition: pfs_visitor.h:79
uint m_index
EVENT_NAME instrument index.
Definition: pfs_visitor.h:446
Instrumentation metadata for a transaction.
Definition: pfs_instr_class.h:477
SHOW_VAR status_vars[]
Definition: mysqld.cc:8608
A concrete connection visitor that aggregates wait statistics for all events.
Definition: pfs_visitor.h:327
virtual void visit_file(PFS_file *)
Visit a file instance.
Definition: pfs_visitor.h:180
virtual void visit_THD(THD *)
Visit a THD associated with a thread.
Definition: pfs_visitor.h:87
virtual void visit_cond(PFS_cond *)
Visit a cond instance.
Definition: pfs_visitor.h:178
virtual void visit_socket(PFS_socket *)
Visit a socket instance.
Definition: pfs_visitor.h:182
PFS_table_io_stat m_stat
Index I/O statistic collected.
Definition: pfs_visitor.h:595
virtual ~PFS_instance_visitor()
Definition: pfs_visitor.h:162
virtual void visit_thread(PFS_thread *)
Visit a thread.
Definition: pfs_visitor.h:85
uint m_index
EVENT_NAME instrument index.
Definition: pfs_visitor.h:361
Iterator over groups of instrumentation point instances.
Definition: pfs_visitor.h:189
virtual void visit_user(PFS_user *)
Visit all connections of a user.
Definition: pfs_visitor.h:83
A concrete connection visitor that aggregates wait statistics for a given event_name.
Definition: pfs_visitor.h:306
Interface class to visit groups of instrumentation point instances.
Definition: pfs_visitor.h:159
static void visit_thread(PFS_thread *thread, PFS_connection_visitor *visitor)
Visit a thread or connection.
Definition: pfs_visitor.h:142
Single statistic.
Definition: pfs_stat.h:51
virtual void visit_table_share(PFS_table_share *)
Visit a table share.
Definition: pfs_visitor.h:274
Instrumented mutex implementation.
Definition: pfs_instr.h:99
PFS_single_stat m_stat
Table lock wait statistic collected.
Definition: pfs_visitor.h:611
A concrete connection visitor that aggregates memory statistics for a given event_name.
Definition: pfs_visitor.h:476
A concrete instance visitor that aggregates file wait and byte count statistics.
Definition: pfs_visitor.h:648
Iterator over groups of SQL objects.
Definition: pfs_visitor.h:289
Statistics (declarations).
Header for compiler-dependent features.
A concrete connection visitor that aggregates stage statistics.
Definition: pfs_visitor.h:349
uint m_index
EVENT_NAME instrument index.
Definition: pfs_visitor.h:425
uint m_index
EVENT_NAME instrument index.
Definition: pfs_visitor.h:382
Statistics for SOCKET I/O.
Definition: pfs_stat.h:813
Statistics for FILE I/O.
Definition: pfs_stat.h:271
PFS_socket_io_stat m_socket_io_stat
Wait and byte count statistics collected.
Definition: pfs_visitor.h:641
Instrumented rwlock implementation.
Definition: pfs_instr.h:116
unsigned int uint
Definition: uca-dump.cc:29
PFS_memory_safe_stat m_stat
Statement statistic collected.
Definition: pfs_visitor.h:490
A concrete object visitor that aggregates object wait statistics.
Definition: pfs_visitor.h:540
PFS_object_visitor()
Definition: pfs_visitor.h:269
A concrete connection visitor that aggregates transaction statistics for a given event_name.
Definition: pfs_visitor.h:413
virtual void visit_mutex(PFS_mutex *)
Visit a mutex instance.
Definition: pfs_visitor.h:174
Instrumentation metadata for a mutex.
Definition: pfs_instr_class.h:231
uint m_index
EVENT_NAME instrument index.
Definition: pfs_visitor.h:488
A concrete connection visitor that aggregates connection statistics.
Definition: pfs_visitor.h:457
Instrumented condition implementation.
Definition: pfs_instr.h:140
PFS_single_stat m_stat
Wait statistic collected.
Definition: pfs_visitor.h:533
Memory statistics.
Definition: pfs_stat.h:1394
A concrete connection visitor that aggregates Error statistics for a given event_name.
Definition: pfs_visitor.h:434
PFS_table_lock_stat m_stat
Table lock statistic collected.
Definition: pfs_visitor.h:626
Iterator over groups of connections.
Definition: pfs_visitor.h:94
Statistics for stage usage.
Definition: pfs_stat.h:322
Per user statistics.
Definition: pfs_user.h:64
A concrete connection visitor that aggregates status variables.
Definition: pfs_visitor.h:497
virtual void visit_global()
Visit all connections.
Definition: pfs_visitor.h:77
PFS_connection_visitor()
Definition: pfs_visitor.h:74
A connection slice, an arbitrary grouping of several connections.
Definition: pfs_con_slice.h:53
A concrete instance visitor that aggregates socket wait and byte count statistics.
Definition: pfs_visitor.h:633
PFS_single_stat m_stat
Table I/O wait statistic collected.
Definition: pfs_visitor.h:565
Instrumented table implementation.
Definition: pfs_instr.h:168
Instrumentation metadata for a file.
Definition: pfs_instr_class.h:455
A concrete object visitor that aggregates table lock statistics.
Definition: pfs_visitor.h:618
virtual void visit_global()
Visit global data.
Definition: pfs_visitor.h:272
A concrete object visitor that aggregates index I/O statistics.
Definition: pfs_visitor.h:587
Statistics for transaction usage.
Definition: pfs_stat.h:433
A concrete connection visitor that aggregates statement statistics for all events.
Definition: pfs_visitor.h:391
Per account statistics.
Definition: pfs_account.h:67
virtual void visit_table(PFS_table *)
Visit a table.
Definition: pfs_visitor.h:279
Interface class to visit groups of connections.
Definition: pfs_visitor.h:72
A concrete object visitor that aggregates table I/O statistics.
Definition: pfs_visitor.h:572
A concrete object visitor that aggregates table I/O wait statistics.
Definition: pfs_visitor.h:556
PFS_stage_stat m_stat
Stage statistic collected.
Definition: pfs_visitor.h:363
virtual void visit_table_index(PFS_table *, uint index)
Visit a table index.
Definition: pfs_visitor.h:281
Instrumented thread implementation.
Definition: pfs_instr.h:341
Instrumented File and FILE implementation.
Definition: pfs_instr.h:150
Per thread status variables.
Definition: system_variables.h:417
A concrete instance visitor that aggregates wait statistics.
Definition: pfs_visitor.h:517
PFS_statement_stat m_stat
Statement statistic collected.
Definition: pfs_visitor.h:403
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_class.h:765
PFS_connection_stat m_stat
Connection statistic collected.
Definition: pfs_visitor.h:469