From: Christopher Powers Date: March 18 2011 11:41pm Subject: bzr push into mysql-trunk branch (chris.powers:3261 to 3263) WL#4896 List-Archive: http://lists.mysql.com/commits/133365 Message-Id: <20110318234158.886DB1DB0335@xeno.mysql.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1427016185510125436==" --===============1427016185510125436== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline 3263 Christopher Powers 2011-03-18 WL#4896 "Performance Schema Net IO" - Updated psi_abi_v1.h.pp modified: include/mysql/psi/psi_abi_v1.h.pp 3262 cpowers 2011-03-18 WL#4896 "Performance Schema Net IO" Tables SOCKET_SUMMARY_BY_EVENT_NAME and SOCKET_SUMMARY_BY_INSTANCE: Column groups assigned to individual socket operations have been removed. Stats for all socket operations are consolidated into into socket read, write and misc column groups. modified: scripts/mysql_system_tables.sql storage/perfschema/pfs.cc storage/perfschema/table_helper.h storage/perfschema/table_socket_summary_by_event_name.cc storage/perfschema/table_socket_summary_by_instance.cc 3261 cpowers 2011-03-18 WL#4896 "Performance Schema Net IO" - Added mysql_socket_set_address() API - Call mysql_socket_set_address() from network_init() for server socket - Added mysql_socket_set_thread_owner() API - Call mysql_socket_set_thread_owner() from do_handle_one_connection() - Removed unused mysql_socket APIs modified: include/mysql/psi/mysql_socket.h include/mysql/psi/psi.h sql/mysqld.cc sql/sql_connect.cc storage/perfschema/pfs.cc storage/perfschema/pfs_global.cc storage/perfschema/pfs_global.h storage/perfschema/pfs_instr.h storage/perfschema/table_socket_instances.cc === modified file 'include/mysql/psi/psi_abi_v1.h.pp' --- a/include/mysql/psi/psi_abi_v1.h.pp 2011-03-16 15:36:35 +0000 +++ b/include/mysql/psi/psi_abi_v1.h.pp 2011-03-18 23:41:39 +0000 @@ -354,17 +354,11 @@ typedef void (*end_socket_wait_v1_t) (struct PSI_socket_locker *locker, size_t count); typedef void (*set_socket_state_v1_t)(struct PSI_socket *socket, enum PSI_socket_state state); -typedef void (*set_socket_descriptor_v1_t)(struct PSI_socket *socket, - uint fd); -typedef void (*set_socket_address_v1_t)(struct PSI_socket *socket, - const struct sockaddr * addr, - socklen_t addr_len); typedef void (*set_socket_info_v1_t)(struct PSI_socket *socket, - my_socket *fd, + const my_socket *fd, const struct sockaddr *addr, - socklen_t *addr_len); -typedef void (*set_socket_thread_owner_v1_t)(struct PSI_socket *socket, - struct PSI_thread *thread); + socklen_t addr_len); +typedef void (*set_socket_thread_owner_v1_t)(struct PSI_socket *socket); struct PSI_v1 { register_mutex_v1_t register_mutex; @@ -437,8 +431,6 @@ struct PSI_v1 start_socket_wait_v1_t start_socket_wait; end_socket_wait_v1_t end_socket_wait; set_socket_state_v1_t set_socket_state; - set_socket_descriptor_v1_t set_socket_descriptor; - set_socket_address_v1_t set_socket_address; set_socket_info_v1_t set_socket_info; set_socket_thread_owner_v1_t set_socket_thread_owner; }; === modified file 'scripts/mysql_system_tables.sql' --- a/scripts/mysql_system_tables.sql 2011-03-16 08:58:26 +0000 +++ b/scripts/mysql_system_tables.sql 2011-03-18 23:37:18 +0000 @@ -419,42 +419,6 @@ SET @cmd="CREATE TABLE performance_schem "AVG_TIMER_WRITE BIGINT unsigned not null," "MAX_TIMER_WRITE BIGINT unsigned not null," "SUM_NUMBER_OF_BYTES_WRITE BIGINT unsigned not null," - "COUNT_RECV BIGINT unsigned not null," - "SUM_TIMER_RECV BIGINT unsigned not null," - "MIN_TIMER_RECV BIGINT unsigned not null," - "AVG_TIMER_RECV BIGINT unsigned not null," - "MAX_TIMER_RECV BIGINT unsigned not null," - "SUM_NUMBER_OF_BYTES_RECV BIGINT unsigned not null," - "COUNT_SEND BIGINT unsigned not null," - "SUM_TIMER_SEND BIGINT unsigned not null," - "MIN_TIMER_SEND BIGINT unsigned not null," - "AVG_TIMER_SEND BIGINT unsigned not null," - "MAX_TIMER_SEND BIGINT unsigned not null," - "SUM_NUMBER_OF_BYTES_SEND BIGINT unsigned not null," - "COUNT_RECVFROM BIGINT unsigned not null," - "SUM_TIMER_RECVFROM BIGINT unsigned not null," - "MIN_TIMER_RECVFROM BIGINT unsigned not null," - "AVG_TIMER_RECVFROM BIGINT unsigned not null," - "MAX_TIMER_RECVFROM BIGINT unsigned not null," - "SUM_NUMBER_OF_BYTES_RECVFROM BIGINT unsigned not null," - "COUNT_SENDTO BIGINT unsigned not null," - "SUM_TIMER_SENDTO BIGINT unsigned not null," - "MIN_TIMER_SENDTO BIGINT unsigned not null," - "AVG_TIMER_SENDTO BIGINT unsigned not null," - "MAX_TIMER_SENDTO BIGINT unsigned not null," - "SUM_NUMBER_OF_BYTES_SENDTO BIGINT unsigned not null," - "COUNT_RECVMSG BIGINT unsigned not null," - "SUM_TIMER_RECVMSG BIGINT unsigned not null," - "MIN_TIMER_RECVMSG BIGINT unsigned not null," - "AVG_TIMER_RECVMSG BIGINT unsigned not null," - "MAX_TIMER_RECVMSG BIGINT unsigned not null," - "SUM_NUMBER_OF_BYTES_RECVMSG BIGINT unsigned not null," - "COUNT_SENDMSG BIGINT unsigned not null," - "SUM_TIMER_SENDMSG BIGINT unsigned not null," - "MIN_TIMER_SENDMSG BIGINT unsigned not null," - "AVG_TIMER_SENDMSG BIGINT unsigned not null," - "MAX_TIMER_SENDMSG BIGINT unsigned not null," - "SUM_NUMBER_OF_BYTES_SENDMSG BIGINT unsigned not null," "COUNT_MISC BIGINT unsigned not null," "SUM_TIMER_MISC BIGINT unsigned not null," "MIN_TIMER_MISC BIGINT unsigned not null," @@ -490,42 +454,6 @@ SET @cmd="CREATE TABLE performance_schem "AVG_TIMER_WRITE BIGINT unsigned not null," "MAX_TIMER_WRITE BIGINT unsigned not null," "SUM_NUMBER_OF_BYTES_WRITE BIGINT unsigned not null," - "COUNT_RECV BIGINT unsigned not null," - "SUM_TIMER_RECV BIGINT unsigned not null," - "MIN_TIMER_RECV BIGINT unsigned not null," - "AVG_TIMER_RECV BIGINT unsigned not null," - "MAX_TIMER_RECV BIGINT unsigned not null," - "SUM_NUMBER_OF_BYTES_RECV BIGINT unsigned not null," - "COUNT_SEND BIGINT unsigned not null," - "SUM_TIMER_SEND BIGINT unsigned not null," - "MIN_TIMER_SEND BIGINT unsigned not null," - "AVG_TIMER_SEND BIGINT unsigned not null," - "MAX_TIMER_SEND BIGINT unsigned not null," - "SUM_NUMBER_OF_BYTES_SEND BIGINT unsigned not null," - "COUNT_RECVFROM BIGINT unsigned not null," - "SUM_TIMER_RECVFROM BIGINT unsigned not null," - "MIN_TIMER_RECVFROM BIGINT unsigned not null," - "AVG_TIMER_RECVFROM BIGINT unsigned not null," - "MAX_TIMER_RECVFROM BIGINT unsigned not null," - "SUM_NUMBER_OF_BYTES_RECVFROM BIGINT unsigned not null," - "COUNT_SENDTO BIGINT unsigned not null," - "SUM_TIMER_SENDTO BIGINT unsigned not null," - "MIN_TIMER_SENDTO BIGINT unsigned not null," - "AVG_TIMER_SENDTO BIGINT unsigned not null," - "MAX_TIMER_SENDTO BIGINT unsigned not null," - "SUM_NUMBER_OF_BYTES_SENDTO BIGINT unsigned not null," - "COUNT_RECVMSG BIGINT unsigned not null," - "SUM_TIMER_RECVMSG BIGINT unsigned not null," - "MIN_TIMER_RECVMSG BIGINT unsigned not null," - "AVG_TIMER_RECVMSG BIGINT unsigned not null," - "MAX_TIMER_RECVMSG BIGINT unsigned not null," - "SUM_NUMBER_OF_BYTES_RECVMSG BIGINT unsigned not null," - "COUNT_SENDMSG BIGINT unsigned not null," - "SUM_TIMER_SENDMSG BIGINT unsigned not null," - "MIN_TIMER_SENDMSG BIGINT unsigned not null," - "AVG_TIMER_SENDMSG BIGINT unsigned not null," - "MAX_TIMER_SENDMSG BIGINT unsigned not null," - "SUM_NUMBER_OF_BYTES_SENDMSG BIGINT unsigned not null," "COUNT_MISC BIGINT unsigned not null," "SUM_TIMER_MISC BIGINT unsigned not null," "MIN_TIMER_MISC BIGINT unsigned not null," === modified file 'storage/perfschema/pfs.cc' --- a/storage/perfschema/pfs.cc 2011-03-18 22:24:30 +0000 +++ b/storage/perfschema/pfs.cc 2011-03-18 23:37:18 +0000 @@ -3787,26 +3787,19 @@ static void end_socket_wait_v1(PSI_socke switch (state->m_operation) { + /** Group read operations */ case PSI_SOCKET_RECV: + case PSI_SOCKET_RECVFROM: + case PSI_SOCKET_RECVMSG: byte_stat= &socket->m_socket_stat.m_io_stat.m_recv; break; + /** Group write operations */ case PSI_SOCKET_SEND: - byte_stat= &socket->m_socket_stat.m_io_stat.m_send; - break; - case PSI_SOCKET_RECVFROM: - byte_stat= &socket->m_socket_stat.m_io_stat.m_recvfrom; - break; case PSI_SOCKET_SENDTO: - byte_stat= &socket->m_socket_stat.m_io_stat.m_sendto; - break; - case PSI_SOCKET_RECVMSG: - byte_stat= &socket->m_socket_stat.m_io_stat.m_recvmsg; - break; case PSI_SOCKET_SENDMSG: - byte_stat= &socket->m_socket_stat.m_io_stat.m_sendmsg; + byte_stat= &socket->m_socket_stat.m_io_stat.m_send; break; - - /** These operations are grouped as 'miscellaneous' */ + /** Group remainging operations as miscellaneous */ case PSI_SOCKET_CONNECT: case PSI_SOCKET_CREATE: case PSI_SOCKET_BIND: === modified file 'storage/perfschema/table_helper.h' --- a/storage/perfschema/table_helper.h 2011-03-16 15:36:35 +0000 +++ b/storage/perfschema/table_helper.h 2011-03-18 23:37:18 +0000 @@ -316,49 +316,22 @@ struct PFS_socket_io_stat_row { PFS_byte_stat_row m_recv; PFS_byte_stat_row m_send; - PFS_byte_stat_row m_recvfrom; - PFS_byte_stat_row m_sendto; - PFS_byte_stat_row m_recvmsg; - PFS_byte_stat_row m_sendmsg; PFS_byte_stat_row m_misc; - PFS_byte_stat_row m_all_read; - PFS_byte_stat_row m_all_write; PFS_byte_stat_row m_all; inline void set(time_normalizer *normalizer, const PFS_socket_io_stat *stat) { - PFS_byte_stat all_read; - PFS_byte_stat all_write; PFS_byte_stat all; - /* Combine receive operations */ m_recv.set(normalizer, &stat->m_recv); - m_recvfrom.set(normalizer, &stat->m_recvfrom); - m_recvmsg.set(normalizer, &stat->m_recvmsg); - - all_read.aggregate(&stat->m_recv); - all_read.aggregate(&stat->m_recvfrom); - all_read.aggregate(&stat->m_recvmsg); - - /* Combine send operations */ m_send.set(normalizer, &stat->m_send); - m_sendto.set(normalizer, &stat->m_sendto); - m_sendmsg.set(normalizer, &stat->m_sendmsg); - - all_write.aggregate(&stat->m_send); - all_write.aggregate(&stat->m_sendto); - all_write.aggregate(&stat->m_sendmsg); - - /* Combine row values for miscellaneous socket operations */ m_misc.set(normalizer, &stat->m_misc); - /* Combine timer stats for all operations */ - all.aggregate(&all_read); - all.aggregate(&all_write); + /* Combine stats for all operations */ + all.aggregate(&stat->m_recv); + all.aggregate(&stat->m_send); all.aggregate(&stat->m_misc); - m_all_read.set(normalizer, &all_read); - m_all_write.set(normalizer, &all_write); m_all.set(normalizer, &all); } }; === modified file 'storage/perfschema/table_socket_summary_by_event_name.cc' --- a/storage/perfschema/table_socket_summary_by_event_name.cc 2011-03-09 21:28:05 +0000 +++ b/storage/perfschema/table_socket_summary_by_event_name.cc 2011-03-18 23:37:18 +0000 @@ -126,198 +126,6 @@ static const TABLE_FIELD_TYPE field_type { NULL, 0} }, - /** Recv */ - { - { C_STRING_WITH_LEN("COUNT_RECV") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_RECV") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_RECV") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_RECV") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_RECV") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_RECV") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - - /** Send */ - { - { C_STRING_WITH_LEN("COUNT_SEND") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_SEND") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_SEND") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_SEND") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_SEND") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_SEND") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - - /** Recvfrom */ - { - { C_STRING_WITH_LEN("COUNT_RECVFROM") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_RECVFROM") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_RECVFROM") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_RECVFROM") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_RECVFROM") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_RECVFROM") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - - /** Sendto */ - { - { C_STRING_WITH_LEN("COUNT_SENDTO") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_SENDTO") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_SENDTO") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_SENDTO") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_SENDTO") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_SENDTO") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - - /** Recvmsg */ - { - { C_STRING_WITH_LEN("COUNT_RECVMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_RECVMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_RECVMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_RECVMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_RECVMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_RECVMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - - /** Sendmsg */ - { - { C_STRING_WITH_LEN("COUNT_SENDMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_SENDMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_SENDMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_SENDMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_SENDMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_SENDMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - /** Misc */ { { C_STRING_WITH_LEN("COUNT_MISC") }, @@ -348,7 +156,7 @@ static const TABLE_FIELD_TYPE field_type TABLE_FIELD_DEF table_socket_summary_by_event_name::m_field_def= -{ 59, field_types }; +{ 23, field_types }; PFS_engine_table_share table_socket_summary_by_event_name::m_share= @@ -359,7 +167,7 @@ table_socket_summary_by_event_name::m_sh NULL, /* write_row */ table_socket_summary_by_event_name::delete_all_rows, NULL, /* get_row_count */ - 1000, /* records */ // TBD: Check this + 1000, /* records */ sizeof(PFS_simple_index), &m_table_lock, &m_field_def, @@ -475,170 +283,56 @@ int table_socket_summary_by_event_name:: break; case 6: /* COUNT_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_read.m_waits.m_count); - break; - case 7: /* SUM_TIMER_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_read.m_waits.m_sum); - break; - case 8: /* MIN_TIMER_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_read.m_waits.m_min); - break; - case 9: /* AVG_TIMER_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_read.m_waits.m_avg); - break; - case 10: /* MAX_TIMER_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_read.m_waits.m_max); - break; - case 11: /* SUM_NUMBER_OF_BYTES_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_read.m_bytes); - break; - - case 12: /* COUNT_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_write.m_waits.m_count); - break; - case 13: /* SUM_TIMER_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_write.m_waits.m_sum); - break; - case 14: /* MIN_TIMER_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_write.m_waits.m_min); - break; - case 15: /* AVG_TIMER_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_write.m_waits.m_avg); - break; - case 16: /* MAX_TIMER_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_write.m_waits.m_max); - break; - case 17: /* SUM_NUMBER_OF_BYTES_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_write.m_bytes); - break; - - case 18: /* COUNT_RECV */ set_field_ulonglong(f, m_row.m_io_stat.m_recv.m_waits.m_count); break; - case 19: /* SUM_TIMER_RECV */ + case 7: /* SUM_TIMER_READ */ set_field_ulonglong(f, m_row.m_io_stat.m_recv.m_waits.m_sum); break; - case 20: /* MIN_TIMER_RECV */ + case 8: /* MIN_TIMER_READ */ set_field_ulonglong(f, m_row.m_io_stat.m_recv.m_waits.m_min); break; - case 21: /* AVG_TIMER_RECV */ + case 9: /* AVG_TIMER_READ */ set_field_ulonglong(f, m_row.m_io_stat.m_recv.m_waits.m_avg); break; - case 22: /* MAX_TIMER_RECV */ + case 10: /* MAX_TIMER_READ */ set_field_ulonglong(f, m_row.m_io_stat.m_recv.m_waits.m_max); break; - case 23: /* SUM_NUMBER_OF_BYTES_RECV */ + case 11: /* SUM_NUMBER_OF_BYTES_READ */ set_field_ulonglong(f, m_row.m_io_stat.m_recv.m_bytes); break; - case 24: /* COUNT_SEND */ + case 12: /* COUNT_WRITE */ set_field_ulonglong(f, m_row.m_io_stat.m_send.m_waits.m_count); break; - case 25: /* SUM_TIMER_SEND */ + case 13: /* SUM_TIMER_WRITE */ set_field_ulonglong(f, m_row.m_io_stat.m_send.m_waits.m_sum); break; - case 26: /* MIN_TIMER_SEND */ + case 14: /* MIN_TIMER_WRITE */ set_field_ulonglong(f, m_row.m_io_stat.m_send.m_waits.m_min); break; - case 27: /* AVG_TIMER_SEND */ + case 15: /* AVG_TIMER_WRITE */ set_field_ulonglong(f, m_row.m_io_stat.m_send.m_waits.m_avg); break; - case 28: /* MAX_TIMER_SEND */ + case 16: /* MAX_TIMER_WRITE */ set_field_ulonglong(f, m_row.m_io_stat.m_send.m_waits.m_max); break; - case 29: /* SUM_NUMBER_OF_BYTES_SEND */ + case 17: /* SUM_NUMBER_OF_BYTES_WRITE */ set_field_ulonglong(f, m_row.m_io_stat.m_send.m_bytes); break; - case 30: /* COUNT_RECVFROM */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvfrom.m_waits.m_count); - break; - case 31: /* SUM_TIMER_RECVFROM */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvfrom.m_waits.m_sum); - break; - case 32: /* MIN_TIMER_RECVFROM */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvfrom.m_waits.m_min); - break; - case 33: /* AVG_TIMER_RECVFROM */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvfrom.m_waits.m_avg); - break; - case 34: /* MAX_TIMER_RECVFROM */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvfrom.m_waits.m_max); - break; - case 35: /* SUM_NUMBER_OF_BYTES_RECVFROM */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvfrom.m_bytes); - break; - - case 36: /* COUNT_SENDTO */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendto.m_waits.m_count); - break; - case 37: /* SUM_TIMER_SENDTO */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendto.m_waits.m_sum); - break; - case 38: /* MIN_TIMER_SENDTO */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendto.m_waits.m_min); - break; - case 39: /* AVG_TIMER_SENDTO */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendto.m_waits.m_avg); - break; - case 40: /* MAX_TIMER_SENDTO */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendto.m_waits.m_max); - break; - case 41: /* SUM_NUMBER_OF_BYTES_SENDTO */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendto.m_bytes); - break; - - case 42: /* COUNT_RECVMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvmsg.m_waits.m_count); - break; - case 43: /* SUM_TIMER_RECVMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvmsg.m_waits.m_sum); - break; - case 44: /* MIN_TIMER_RECVMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvmsg.m_waits.m_min); - break; - case 45: /* AVG_TIMER_RECVMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvmsg.m_waits.m_avg); - break; - case 46: /* MAX_TIMER_RECVMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvmsg.m_waits.m_max); - break; - case 47: /* SUM_NUMBER_OF_BYTES_RECVMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvmsg.m_bytes); - break; - - case 48: /* COUNT_SENDMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendmsg.m_waits.m_count); - break; - case 49: /* SUM_TIMER_SENDMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendmsg.m_waits.m_sum); - break; - case 50: /* MIN_TIMER_SENDMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendmsg.m_waits.m_min); - break; - case 51: /* AVG_TIMER_SENDMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendmsg.m_waits.m_avg); - break; - case 52: /* MAX_TIMER_SENDMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendmsg.m_waits.m_max); - break; - case 53: /* SUM_NUMBER_OF_BYTES_SENDMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendmsg.m_bytes); - break; - - case 54: /* COUNT_MISC */ + case 18: /* COUNT_MISC */ set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_count); break; - case 55: /* SUM_TIMER_MISC */ + case 19: /* SUM_TIMER_MISC */ set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_sum); break; - case 56: /* MIN_TIMER_MISC */ + case 20: /* MIN_TIMER_MISC */ set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_min); break; - case 57: /* AVG_TIMER_MISC */ + case 21: /* AVG_TIMER_MISC */ set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_avg); break; - case 58: /* MAX_TIMER_MISC */ + case 22: /* MAX_TIMER_MISC */ set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_max); break; === modified file 'storage/perfschema/table_socket_summary_by_instance.cc' --- a/storage/perfschema/table_socket_summary_by_instance.cc 2011-03-09 21:28:05 +0000 +++ b/storage/perfschema/table_socket_summary_by_instance.cc 2011-03-18 23:37:18 +0000 @@ -135,198 +135,6 @@ static const TABLE_FIELD_TYPE field_type { NULL, 0} }, - /** Recv */ - { - { C_STRING_WITH_LEN("COUNT_RECV") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_RECV") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_RECV") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_RECV") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_RECV") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_RECV") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - - /** Send */ - { - { C_STRING_WITH_LEN("COUNT_SEND") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_SEND") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_SEND") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_SEND") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_SEND") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_SEND") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - - /** Recvfrom */ - { - { C_STRING_WITH_LEN("COUNT_RECVFROM") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_RECVFROM") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_RECVFROM") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_RECVFROM") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_RECVFROM") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_RECVFROM") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - - /** Sendto */ - { - { C_STRING_WITH_LEN("COUNT_SENDTO") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_SENDTO") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_SENDTO") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_SENDTO") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_SENDTO") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_SENDTO") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - - /** Recvmsg */ - { - { C_STRING_WITH_LEN("COUNT_RECVMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_RECVMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_RECVMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_RECVMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_RECVMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_RECVMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - - /** Sendmsg */ - { - { C_STRING_WITH_LEN("COUNT_SENDMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_TIMER_SENDMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MIN_TIMER_SENDMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("AVG_TIMER_SENDMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("MAX_TIMER_SENDMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - { - { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_SENDMSG") }, - { C_STRING_WITH_LEN("bigint(20)") }, - { NULL, 0} - }, - /** Misc */ { { C_STRING_WITH_LEN("COUNT_MISC") }, @@ -357,7 +165,7 @@ static const TABLE_FIELD_TYPE field_type TABLE_FIELD_DEF table_socket_summary_by_instance::m_field_def= -{ 61, field_types }; +{ 25, field_types }; PFS_engine_table_share table_socket_summary_by_instance::m_share= @@ -368,7 +176,7 @@ table_socket_summary_by_instance::m_shar NULL, /* write_row */ table_socket_summary_by_instance::delete_all_rows, NULL, /* get_row_count */ - 1000, /* records */ // TBD: Check this + 1000, /* records */ sizeof(PFS_simple_index), &m_table_lock, &m_field_def, @@ -483,7 +291,6 @@ int table_socket_summary_by_instance::re m_row.m_event_name.set_field(f); break; case 1: /* OBJECT_INSTANCE */ - // TBD: Fix set_field_ulonglong(f, (ulonglong)m_row.m_identity); break; case 2: /* OBJECT_NAME */ @@ -507,170 +314,56 @@ int table_socket_summary_by_instance::re break; case 8: /* COUNT_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_read.m_waits.m_count); - break; - case 9: /* SUM_TIMER_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_read.m_waits.m_sum); - break; - case 10: /* MIN_TIMER_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_read.m_waits.m_min); - break; - case 11: /* AVG_TIMER_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_read.m_waits.m_avg); - break; - case 12: /* MAX_TIMER_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_read.m_waits.m_max); - break; - case 13: /* SUM_NUMBER_OF_BYTES_READ */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_read.m_bytes); - break; - - case 14: /* COUNT_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_write.m_waits.m_count); - break; - case 15: /* SUM_TIMER_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_write.m_waits.m_sum); - break; - case 16: /* MIN_TIMER_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_write.m_waits.m_min); - break; - case 17: /* AVG_TIMER_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_write.m_waits.m_avg); - break; - case 18: /* MAX_TIMER_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_write.m_waits.m_max); - break; - case 19: /* SUM_NUMBER_OF_BYTES_WRITE */ - set_field_ulonglong(f, m_row.m_io_stat.m_all_write.m_bytes); - break; - - case 20: /* COUNT_RECV */ set_field_ulonglong(f, m_row.m_io_stat.m_recv.m_waits.m_count); break; - case 21: /* SUM_TIMER_RECV */ + case 9: /* SUM_TIMER_READ */ set_field_ulonglong(f, m_row.m_io_stat.m_recv.m_waits.m_sum); break; - case 22: /* MIN_TIMER_RECV */ + case 10: /* MIN_TIMER_READ */ set_field_ulonglong(f, m_row.m_io_stat.m_recv.m_waits.m_min); break; - case 23: /* AVG_TIMER_RECV */ + case 11: /* AVG_TIMER_READ */ set_field_ulonglong(f, m_row.m_io_stat.m_recv.m_waits.m_avg); break; - case 24: /* MAX_TIMER_RECV */ + case 12: /* MAX_TIMER_READ */ set_field_ulonglong(f, m_row.m_io_stat.m_recv.m_waits.m_max); break; - case 25: /* SUM_NUMBER_OF_BYTES_RECV */ + case 13: /* SUM_NUMBER_OF_BYTES_READ */ set_field_ulonglong(f, m_row.m_io_stat.m_recv.m_bytes); break; - case 26: /* COUNT_SEND */ + case 14: /* COUNT_WRITE */ set_field_ulonglong(f, m_row.m_io_stat.m_send.m_waits.m_count); break; - case 27: /* SUM_TIMER_SEND */ + case 15: /* SUM_TIMER_WRITE */ set_field_ulonglong(f, m_row.m_io_stat.m_send.m_waits.m_sum); break; - case 28: /* MIN_TIMER_SEND */ + case 16: /* MIN_TIMER_WRITE */ set_field_ulonglong(f, m_row.m_io_stat.m_send.m_waits.m_min); break; - case 29: /* AVG_TIMER_SEND */ + case 17: /* AVG_TIMER_WRITE */ set_field_ulonglong(f, m_row.m_io_stat.m_send.m_waits.m_avg); break; - case 30: /* MAX_TIMER_SEND */ + case 18: /* MAX_TIMER_WRITE */ set_field_ulonglong(f, m_row.m_io_stat.m_send.m_waits.m_max); break; - case 31: /* SUM_NUMBER_OF_BYTES_SEND */ + case 19: /* SUM_NUMBER_OF_BYTES_WRITE */ set_field_ulonglong(f, m_row.m_io_stat.m_send.m_bytes); break; - case 32: /* COUNT_RECVFROM */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvfrom.m_waits.m_count); - break; - case 33: /* SUM_TIMER_RECVFROM */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvfrom.m_waits.m_sum); - break; - case 34: /* MIN_TIMER_RECVFROM */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvfrom.m_waits.m_min); - break; - case 35: /* AVG_TIMER_RECVFROM */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvfrom.m_waits.m_avg); - break; - case 36: /* MAX_TIMER_RECVFROM */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvfrom.m_waits.m_max); - break; - case 37: /* SUM_NUMBER_OF_BYTES_RECVFROM */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvfrom.m_bytes); - break; - - case 38: /* COUNT_SENDTO */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendto.m_waits.m_count); - break; - case 39: /* SUM_TIMER_SENDTO */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendto.m_waits.m_sum); - break; - case 40: /* MIN_TIMER_SENDTO */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendto.m_waits.m_min); - break; - case 41: /* AVG_TIMER_SENDTO */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendto.m_waits.m_avg); - break; - case 42: /* MAX_TIMER_SENDTO */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendto.m_waits.m_max); - break; - case 43: /* SUM_NUMBER_OF_BYTES_SENDTO */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendto.m_bytes); - break; - - case 44: /* COUNT_RECVMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvmsg.m_waits.m_count); - break; - case 45: /* SUM_TIMER_RECVMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvmsg.m_waits.m_sum); - break; - case 46: /* MIN_TIMER_RECVMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvmsg.m_waits.m_min); - break; - case 47: /* AVG_TIMER_RECVMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvmsg.m_waits.m_avg); - break; - case 48: /* MAX_TIMER_RECVMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvmsg.m_waits.m_max); - break; - case 49: /* SUM_NUMBER_OF_BYTES_RECVMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_recvmsg.m_bytes); - break; - - case 50: /* COUNT_SENDMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendmsg.m_waits.m_count); - break; - case 51: /* SUM_TIMER_SENDMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendmsg.m_waits.m_sum); - break; - case 52: /* MIN_TIMER_SENDMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendmsg.m_waits.m_min); - break; - case 53: /* AVG_TIMER_SENDMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendmsg.m_waits.m_avg); - break; - case 54: /* MAX_TIMER_SENDMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendmsg.m_waits.m_max); - break; - case 55: /* SUM_NUMBER_OF_BYTES_SENDMSG */ - set_field_ulonglong(f, m_row.m_io_stat.m_sendmsg.m_bytes); - break; - - case 56: /* COUNT_MISC */ + case 20: /* COUNT_MISC */ set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_count); break; - case 57: /* SUM_TIMER_MISC */ + case 21: /* SUM_TIMER_MISC */ set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_sum); break; - case 58: /* MIN_TIMER_MISC */ + case 22: /* MIN_TIMER_MISC */ set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_min); break; - case 59: /* AVG_TIMER_MISC */ + case 23: /* AVG_TIMER_MISC */ set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_avg); break; - case 60: /* MAX_TIMER_MISC */ + case 24: /* MAX_TIMER_MISC */ set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_max); break; default: --===============1427016185510125436== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/chris.powers@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: chris.powers@stripped # target_branch: file:///home/cpowers/work/dev/mysql-trunk-wl4896/ # testament_sha1: 343e0b7aef58d0402cc3ea692a6f58758152c229 # timestamp: 2011-03-18 18:41:58 -0500 # source_branch: file:///home/cpowers/work/dev/mysql-trunk/ # base_revision_id: cpowers@tma-1-20110318222430-9zuk7cbj0kgvsat8 # # Begin bundle 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 ZAXdbd2pLXcewuYfAv6Gg/+LuSKcKEgiAU5tgA== --===============1427016185510125436==--