Skip to content

Commit 561ca99

Browse files
cpowerscpowers
cpowers
authored and
cpowers
committed
WL#4896 "Performance Schema Net IO"
- Code review changes, part II. Intermediate.
1 parent b9769f5 commit 561ca99

File tree

78 files changed

+741
-619
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+741
-619
lines changed

include/mysql/psi/mysql_socket.h

+53-12
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,15 @@ inline_mysql_end_socket_wait(struct PSI_socket_locker *locker, size_t byte_count
254254
}
255255
#endif
256256

257+
/**
258+
@def mysql_socket_socket(K, D, T, P)
259+
Create a socket.
260+
@c mysql_socket_socket is a replacement for @c socket.
261+
@param K PSI_socket_key for this instrumented socket
262+
@param D Socket domain
263+
@param T Socket type
264+
@param P Transport protocol
265+
*/
257266

258267
#ifdef HAVE_PSI_INTERFACE
259268
#define mysql_socket_socket(K, D, T, P) \
@@ -263,30 +272,62 @@ inline_mysql_end_socket_wait(struct PSI_socket_locker *locker, size_t byte_count
263272
inline_mysql_socket_socket(D, T, P)
264273
#endif
265274

275+
/**
276+
@def mysql_socket_bind(FD, AP, L)
277+
Assign socket to address.
278+
@c mysql_socket_bind is a replacement for @c bind.
279+
@param FD Instrumented socket descriptor
280+
@param AP Pointer to sockaddr structure
281+
@param L Length of sockaddr structure
282+
*/
266283
#ifdef HAVE_PSI_INTERFACE
267-
#define mysql_socket_bind(FD, A, L) \
268-
inline_mysql_socket_bind(__FILE__, __LINE__, FD, A, L)
284+
#define mysql_socket_bind(FD, AP, L) \
285+
inline_mysql_socket_bind(__FILE__, __LINE__, FD, AP, L)
269286
#else
270-
#define mysql_socket_bind(FD, A, L) \
271-
inline_mysql_socket_bind(FD, A, L)
287+
#define mysql_socket_bind(FD, AP, L) \
288+
inline_mysql_socket_bind(FD, AP, L)
272289
#endif
273290

291+
/**
292+
@def mysql_socket_getsockname(FD, AP, LP)
293+
Get locally-bound name of a socket.
294+
@c mysql_socket_getsockname is a replacement for @c getsockname.
295+
@param FD Instrumented socket descriptor
296+
@param A Pointer to sockaddr structure
297+
@param L Pointer to length of sockaddr structure
298+
*/
274299
#ifdef HAVE_PSI_INTERFACE
275-
#define mysql_socket_getsockname(FD, A, LP) \
276-
inline_mysql_socket_getsockname(__FILE__, __LINE__, FD, A, LP)
300+
#define mysql_socket_getsockname(FD, AP, LP) \
301+
inline_mysql_socket_getsockname(__FILE__, __LINE__, FD, AP, LP)
277302
#else
278-
#define mysql_socket_getsockname(FD, A, LP) \
279-
inline_mysql_socket_getsockname(FD, A, LP)
303+
#define mysql_socket_getsockname(FD, AP, LP) \
304+
inline_mysql_socket_getsockname(FD, AP, LP)
280305
#endif
281306

307+
/**
308+
@def mysql_socket_connect(FD, AP, L)
309+
Connect a socket to a remote host.
310+
@c mysql_socket_connect is a replacement for @c connect.
311+
@param FD Instrumented socket descriptor
312+
@param AP Pointer to sockaddr structure specifying remote address
313+
@param L Length of sockaddr structure
314+
*/
282315
#ifdef HAVE_PSI_INTERFACE
283-
#define mysql_socket_connect(FD, A, L) \
284-
inline_mysql_socket_connect(__FILE__, __LINE__, FD, A, L)
316+
#define mysql_socket_connect(FD, AP, L) \
317+
inline_mysql_socket_connect(__FILE__, __LINE__, FD, AP, L)
285318
#else
286-
#define mysql_socket_connect(FD, A, L) \
287-
inline_mysql_socket_connect(FD, A, L)
319+
#define mysql_socket_connect(FD, AP, L) \
320+
inline_mysql_socket_connect(FD, AP, L)
288321
#endif
289322

323+
/**
324+
@def mysql_socket_getpeername(FD, AP, LP)
325+
Get the peer address of a socket.
326+
@c mysql_socket_getpeername is a replacement for @c getpeername.
327+
@param FD Instrumented socket descriptor
328+
@param AP Pointer to sockaddr structure
329+
@param LP Pointer to length of sockaddr structure
330+
*/
290331
#ifdef HAVE_PSI_INTERFACE
291332
#define mysql_socket_getpeername(FD, A, LP) \
292333
inline_mysql_socket_getpeername(__FILE__, __LINE__, FD, A, LP)

mysql-test/suite/perfschema/r/ortho_iter.result

+2-2
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@ performance_schema_max_mutex_classes 200
109109
performance_schema_max_mutex_instances 5000
110110
performance_schema_max_rwlock_classes 30
111111
performance_schema_max_rwlock_instances 5000
112-
performance_schema_max_socket_classes 50
113-
performance_schema_max_socket_instances 10000
112+
performance_schema_max_socket_classes 10
113+
performance_schema_max_socket_instances 1000
114114
performance_schema_max_stage_classes 100
115115
performance_schema_max_statement_classes 165
116116
performance_schema_max_table_handles 1000

mysql-test/suite/perfschema/r/privilege_table_io.result

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ performance_schema_max_mutex_classes 200
3131
performance_schema_max_mutex_instances 5000
3232
performance_schema_max_rwlock_classes 30
3333
performance_schema_max_rwlock_instances 5000
34-
performance_schema_max_socket_classes 50
35-
performance_schema_max_socket_instances 10000
34+
performance_schema_max_socket_classes 10
35+
performance_schema_max_socket_instances 1000
3636
performance_schema_max_stage_classes 100
3737
performance_schema_max_statement_classes 165
3838
performance_schema_max_table_handles 1000

mysql-test/suite/perfschema/r/start_server_no_cond_class.result

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ performance_schema_max_mutex_classes 200
7171
performance_schema_max_mutex_instances 5000
7272
performance_schema_max_rwlock_classes 30
7373
performance_schema_max_rwlock_instances 5000
74-
performance_schema_max_socket_classes 50
75-
performance_schema_max_socket_instances 10000
74+
performance_schema_max_socket_classes 10
75+
performance_schema_max_socket_instances 1000
7676
performance_schema_max_stage_classes 100
7777
performance_schema_max_statement_classes 165
7878
performance_schema_max_table_handles 1000

mysql-test/suite/perfschema/r/start_server_no_cond_inst.result

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ performance_schema_max_mutex_classes 200
7171
performance_schema_max_mutex_instances 5000
7272
performance_schema_max_rwlock_classes 30
7373
performance_schema_max_rwlock_instances 5000
74-
performance_schema_max_socket_classes 50
75-
performance_schema_max_socket_instances 10000
74+
performance_schema_max_socket_classes 10
75+
performance_schema_max_socket_instances 1000
7676
performance_schema_max_stage_classes 100
7777
performance_schema_max_statement_classes 165
7878
performance_schema_max_table_handles 1000

mysql-test/suite/perfschema/r/start_server_no_file_class.result

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ performance_schema_max_mutex_classes 200
7171
performance_schema_max_mutex_instances 5000
7272
performance_schema_max_rwlock_classes 30
7373
performance_schema_max_rwlock_instances 5000
74-
performance_schema_max_socket_classes 50
75-
performance_schema_max_socket_instances 10000
74+
performance_schema_max_socket_classes 10
75+
performance_schema_max_socket_instances 1000
7676
performance_schema_max_stage_classes 100
7777
performance_schema_max_statement_classes 165
7878
performance_schema_max_table_handles 1000

mysql-test/suite/perfschema/r/start_server_no_file_inst.result

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ performance_schema_max_mutex_classes 200
7171
performance_schema_max_mutex_instances 5000
7272
performance_schema_max_rwlock_classes 30
7373
performance_schema_max_rwlock_instances 5000
74-
performance_schema_max_socket_classes 50
75-
performance_schema_max_socket_instances 10000
74+
performance_schema_max_socket_classes 10
75+
performance_schema_max_socket_instances 1000
7676
performance_schema_max_stage_classes 100
7777
performance_schema_max_statement_classes 165
7878
performance_schema_max_table_handles 1000

mysql-test/suite/perfschema/r/start_server_no_mutex_class.result

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ performance_schema_max_mutex_classes 0
7171
performance_schema_max_mutex_instances 5000
7272
performance_schema_max_rwlock_classes 30
7373
performance_schema_max_rwlock_instances 5000
74-
performance_schema_max_socket_classes 50
75-
performance_schema_max_socket_instances 10000
74+
performance_schema_max_socket_classes 10
75+
performance_schema_max_socket_instances 1000
7676
performance_schema_max_stage_classes 100
7777
performance_schema_max_statement_classes 165
7878
performance_schema_max_table_handles 1000

mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ performance_schema_max_mutex_classes 200
7171
performance_schema_max_mutex_instances 0
7272
performance_schema_max_rwlock_classes 30
7373
performance_schema_max_rwlock_instances 5000
74-
performance_schema_max_socket_classes 50
75-
performance_schema_max_socket_instances 10000
74+
performance_schema_max_socket_classes 10
75+
performance_schema_max_socket_instances 1000
7676
performance_schema_max_stage_classes 100
7777
performance_schema_max_statement_classes 165
7878
performance_schema_max_table_handles 1000

mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ performance_schema_max_mutex_classes 200
7171
performance_schema_max_mutex_instances 5000
7272
performance_schema_max_rwlock_classes 0
7373
performance_schema_max_rwlock_instances 5000
74-
performance_schema_max_socket_classes 50
75-
performance_schema_max_socket_instances 10000
74+
performance_schema_max_socket_classes 10
75+
performance_schema_max_socket_instances 1000
7676
performance_schema_max_stage_classes 100
7777
performance_schema_max_statement_classes 165
7878
performance_schema_max_table_handles 1000

mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ performance_schema_max_mutex_classes 200
7171
performance_schema_max_mutex_instances 5000
7272
performance_schema_max_rwlock_classes 30
7373
performance_schema_max_rwlock_instances 0
74-
performance_schema_max_socket_classes 50
75-
performance_schema_max_socket_instances 10000
74+
performance_schema_max_socket_classes 10
75+
performance_schema_max_socket_instances 1000
7676
performance_schema_max_stage_classes 100
7777
performance_schema_max_statement_classes 165
7878
performance_schema_max_table_handles 1000

mysql-test/suite/perfschema/r/start_server_no_setup_actors.result

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ performance_schema_max_mutex_classes 200
7171
performance_schema_max_mutex_instances 5000
7272
performance_schema_max_rwlock_classes 30
7373
performance_schema_max_rwlock_instances 5000
74-
performance_schema_max_socket_classes 50
75-
performance_schema_max_socket_instances 10000
74+
performance_schema_max_socket_classes 10
75+
performance_schema_max_socket_instances 1000
7676
performance_schema_max_stage_classes 100
7777
performance_schema_max_statement_classes 165
7878
performance_schema_max_table_handles 1000

mysql-test/suite/perfschema/r/start_server_no_setup_objects.result

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ performance_schema_max_mutex_classes 200
7171
performance_schema_max_mutex_instances 5000
7272
performance_schema_max_rwlock_classes 30
7373
performance_schema_max_rwlock_instances 5000
74-
performance_schema_max_socket_classes 50
75-
performance_schema_max_socket_instances 10000
74+
performance_schema_max_socket_classes 10
75+
performance_schema_max_socket_instances 1000
7676
performance_schema_max_stage_classes 100
7777
performance_schema_max_statement_classes 165
7878
performance_schema_max_table_handles 1000

mysql-test/suite/perfschema/r/start_server_no_socket_class.result

+22-6
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,24 @@ count(*)
1010
5
1111
select count(*) from performance_schema.setup_consumers;
1212
count(*)
13-
5
13+
11
1414
select count(*) > 3 from performance_schema.setup_instruments;
1515
count(*) > 3
1616
1
1717
select count(*) from performance_schema.setup_timers;
1818
count(*)
19-
2
19+
4
2020
select * from performance_schema.cond_instances;
21+
select * from performance_schema.events_stages_current;
22+
select * from performance_schema.events_stages_history;
23+
select * from performance_schema.events_stages_history_long;
24+
select * from performance_schema.events_stages_summary_by_thread_by_event_name;
25+
select * from performance_schema.events_stages_summary_global_by_event_name;
26+
select * from performance_schema.events_statements_current;
27+
select * from performance_schema.events_statements_history;
28+
select * from performance_schema.events_statements_history_long;
29+
select * from performance_schema.events_statements_summary_by_thread_by_event_name;
30+
select * from performance_schema.events_statements_summary_global_by_event_name;
2131
select * from performance_schema.events_waits_current;
2232
select * from performance_schema.events_waits_history;
2333
select * from performance_schema.events_waits_history_long;
@@ -46,6 +56,10 @@ select * from performance_schema.threads;
4656
show variables like "performance_schema%";
4757
Variable_name Value
4858
performance_schema ON
59+
performance_schema_events_stages_history_long_size 1000
60+
performance_schema_events_stages_history_size 10
61+
performance_schema_events_statements_history_long_size 1000
62+
performance_schema_events_statements_history_size 10
4963
performance_schema_events_waits_history_long_size 10000
5064
performance_schema_events_waits_history_size 10
5165
performance_schema_max_cond_classes 80
@@ -54,15 +68,17 @@ performance_schema_max_file_classes 50
5468
performance_schema_max_file_handles 32768
5569
performance_schema_max_file_instances 10000
5670
performance_schema_max_mutex_classes 200
57-
performance_schema_max_mutex_instances 10000
71+
performance_schema_max_mutex_instances 5000
5872
performance_schema_max_rwlock_classes 30
59-
performance_schema_max_rwlock_instances 10000
73+
performance_schema_max_rwlock_instances 5000
6074
performance_schema_max_socket_classes 0
61-
performance_schema_max_socket_instances 10000
75+
performance_schema_max_socket_instances 1000
76+
performance_schema_max_stage_classes 100
77+
performance_schema_max_statement_classes 165
6278
performance_schema_max_table_handles 1000
6379
performance_schema_max_table_instances 500
6480
performance_schema_max_thread_classes 50
65-
performance_schema_max_thread_instances 1000
81+
performance_schema_max_thread_instances 200
6682
performance_schema_setup_actors_size 100
6783
performance_schema_setup_objects_size 100
6884
show engine PERFORMANCE_SCHEMA status;

mysql-test/suite/perfschema/r/start_server_no_socket_inst.result

+23-7
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,24 @@ count(*)
1010
5
1111
select count(*) from performance_schema.setup_consumers;
1212
count(*)
13-
5
13+
11
1414
select count(*) > 3 from performance_schema.setup_instruments;
1515
count(*) > 3
1616
1
1717
select count(*) from performance_schema.setup_timers;
1818
count(*)
19-
2
19+
4
2020
select * from performance_schema.cond_instances;
21+
select * from performance_schema.events_stages_current;
22+
select * from performance_schema.events_stages_history;
23+
select * from performance_schema.events_stages_history_long;
24+
select * from performance_schema.events_stages_summary_by_thread_by_event_name;
25+
select * from performance_schema.events_stages_summary_global_by_event_name;
26+
select * from performance_schema.events_statements_current;
27+
select * from performance_schema.events_statements_history;
28+
select * from performance_schema.events_statements_history_long;
29+
select * from performance_schema.events_statements_summary_by_thread_by_event_name;
30+
select * from performance_schema.events_statements_summary_global_by_event_name;
2131
select * from performance_schema.events_waits_current;
2232
select * from performance_schema.events_waits_history;
2333
select * from performance_schema.events_waits_history_long;
@@ -46,6 +56,10 @@ select * from performance_schema.threads;
4656
show variables like "performance_schema%";
4757
Variable_name Value
4858
performance_schema ON
59+
performance_schema_events_stages_history_long_size 1000
60+
performance_schema_events_stages_history_size 10
61+
performance_schema_events_statements_history_long_size 1000
62+
performance_schema_events_statements_history_size 10
4963
performance_schema_events_waits_history_long_size 10000
5064
performance_schema_events_waits_history_size 10
5165
performance_schema_max_cond_classes 80
@@ -54,22 +68,24 @@ performance_schema_max_file_classes 50
5468
performance_schema_max_file_handles 32768
5569
performance_schema_max_file_instances 10000
5670
performance_schema_max_mutex_classes 200
57-
performance_schema_max_mutex_instances 10000
71+
performance_schema_max_mutex_instances 5000
5872
performance_schema_max_rwlock_classes 30
59-
performance_schema_max_rwlock_instances 10000
60-
performance_schema_max_socket_classes 50
73+
performance_schema_max_rwlock_instances 5000
74+
performance_schema_max_socket_classes 10
6175
performance_schema_max_socket_instances 0
76+
performance_schema_max_stage_classes 100
77+
performance_schema_max_statement_classes 165
6278
performance_schema_max_table_handles 1000
6379
performance_schema_max_table_instances 500
6480
performance_schema_max_thread_classes 50
65-
performance_schema_max_thread_instances 1000
81+
performance_schema_max_thread_instances 200
6682
performance_schema_setup_actors_size 100
6783
performance_schema_setup_objects_size 100
6884
show engine PERFORMANCE_SCHEMA status;
6985
show status like "performance_schema%";
7086
show variables like "performance_schema_max_socket_classes";
7187
Variable_name Value
72-
performance_schema_max_socket_classes 50
88+
performance_schema_max_socket_classes 10
7389
select count(*) > 0 from performance_schema.setup_instruments
7490
where name like "wait/io/socket/%";
7591
count(*) > 0

mysql-test/suite/perfschema/r/start_server_no_stages_history.result

+8-3
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ count(*)
1111
select count(*) from performance_schema.setup_consumers;
1212
count(*)
1313
11
14-
select count(*) > 2 from performance_schema.setup_instruments;
15-
count(*) > 2
14+
select count(*) > 3 from performance_schema.setup_instruments;
15+
count(*) > 3
1616
1
1717
select count(*) from performance_schema.setup_timers;
1818
count(*)
19-
3
19+
4
2020
select * from performance_schema.cond_instances;
2121
select * from performance_schema.events_stages_current;
2222
select * from performance_schema.events_stages_history;
@@ -37,6 +37,9 @@ select * from performance_schema.events_waits_summary_global_by_event_name;
3737
select * from performance_schema.file_instances;
3838
select * from performance_schema.file_summary_by_event_name;
3939
select * from performance_schema.file_summary_by_instance;
40+
select * from performance_schema.socket_instances;
41+
select * from performance_schema.socket_summary_by_instance;
42+
select * from performance_schema.socket_summary_by_event_name;
4043
select * from performance_schema.mutex_instances;
4144
select * from performance_schema.objects_summary_global_by_type;
4245
select * from performance_schema.performance_timers;
@@ -68,6 +71,8 @@ performance_schema_max_mutex_classes 200
6871
performance_schema_max_mutex_instances 5000
6972
performance_schema_max_rwlock_classes 30
7073
performance_schema_max_rwlock_instances 5000
74+
performance_schema_max_socket_classes 10
75+
performance_schema_max_socket_instances 1000
7176
performance_schema_max_stage_classes 100
7277
performance_schema_max_statement_classes 165
7378
performance_schema_max_table_handles 1000

0 commit comments

Comments
 (0)