Skip to content

File perf_monitor.h

FileList > base > perf_monitor.h

Go to the source code of this file

  • #include "connection_defs.h"
  • #include "dbtype_def.h"
  • #include "log_impl.h"
  • #include "memory_alloc.h"
  • #include "porting_inline.hpp"
  • #include "storage_common.h"
  • #include "thread_compat.hpp"
  • #include "tsc_timer.h"
  • #include <assert.h>
  • #include <stdio.h>
  • #include <sys/time.h>
  • #include <time.h>

Classes

Type Name
struct diag_sys_config
struct monitor_cas_config
struct monitor_server_config
struct perf_utime_tracker
struct perfmon_client_stat_info
struct pstat_global
struct pstat_metadata
struct t_client_monitor_config
struct t_diag_monitor_cas_value
struct t_diag_monitor_db_value
struct t_shm_diag_info_server

Public Types

Type Name
typedef struct diag_sys_config DIAG_SYS_CONFIG
typedef struct monitor_cas_config MONITOR_CAS_CONFIG
typedef struct monitor_server_config MONITOR_SERVER_CONFIG
enum PERFMON_ACTIVATION_FLAG
typedef struct perfmon_client_stat_info PERFMON_CLIENT_STAT_INFO
enum PERF_CONDITIONAL_FIX_TYPE
enum PERF_HOLDER_LATCH
enum PERF_MODULE_TYPE
enum PERF_PAGE_MODE
enum PERF_PAGE_TYPE
enum PERF_PROMOTE_CONDITION
enum PERF_SNAPSHOT_RECORD_TYPE
enum PERF_SNAPSHOT_TYPE
enum PERF_SNAPSHOT_VISIBILITY
enum PERF_STAT_ID
typedef struct perf_utime_tracker PERF_UTIME_TRACKER
typedef void(* PSTAT_DUMP_IN_BUFFER_FUNC
typedef void(* PSTAT_DUMP_IN_FILE_FUNC
typedef struct pstat_global PSTAT_GLOBAL
typedef int(* PSTAT_LOAD_FUNC
typedef struct pstat_metadata PSTAT_METADATA
enum PSTAT_VALUE_TYPE
typedef struct t_client_monitor_config T_CLIENT_MONITOR_CONFIG
typedef struct t_diag_monitor_cas_value T_DIAG_MONITOR_CAS_VALUE
typedef struct t_diag_monitor_db_value T_DIAG_MONITOR_DB_VALUE
typedef enum t_diag_server_type T_DIAG_SERVER_TYPE
typedef enum t_diag_shm_mode T_DIAG_SHM_MODE
typedef struct t_shm_diag_info_server T_SHM_DIAG_INFO_SERVER
enum t_diag_server_type
enum t_diag_shm_mode

Public Attributes

Type Name
bool perfmon_Iscollecting_stats
PSTAT_GLOBAL pstat_Global
PSTAT_METADATA pstat_Metadata

Public Functions

Type Name
char * perfmon_allocate_packed_values_buffer (void)
UINT64 * perfmon_allocate_values (void)
int perfmon_calc_diff_stats (UINT64 * stats_diff, UINT64 * new_stats, UINT64 * old_stats, bool need_pgbuf_stat)
int perfmon_calc_diff_stats_for_trace (UINT64 * stats_diff, UINT64 * new_stats, UINT64 * old_stats)
void perfmon_copy_values (UINT64 * src, UINT64 * dest)
void perfmon_db_flushed_block_volumes (THREAD_ENTRY * thread_p, int num_volumes)
void perfmon_destroy_parallel_stats (THREAD_ENTRY * thread_p)
void perfmon_er_log_current_stats (THREAD_ENTRY * thread_p)
void perfmon_finalize (void)
void perfmon_get_current_times (time_t * cpu_usr_time, time_t * cpu_sys_time, time_t * elapsed_time)
UINT64 perfmon_get_from_statistic (THREAD_ENTRY * thread_p, const int statistic_id)
int perfmon_get_global_stats (void)
int perfmon_get_number_of_statistic_values (void)
int perfmon_get_stats (void)
UINT64 perfmon_get_stats_and_clear (THREAD_ENTRY * thread_p, const char * stat_name)
int perfmon_initialize (int num_trans)
void perfmon_initialize_parallel_stats (THREAD_ENTRY * thread_p)
void perfmon_lk_waited_time_on_objects (THREAD_ENTRY * thread_p, int lock_mode, UINT64 amount)
void perfmon_mvcc_snapshot (THREAD_ENTRY * thread_p, int snapshot, int rec_type, int visibility)
char * perfmon_pack_stats (char * buf, UINT64 * stats)
void perfmon_pbx_fix (THREAD_ENTRY * thread_p, int page_type, int page_found_mode, int latch_mode, int cond_type)
void perfmon_pbx_fix_acquire_time (THREAD_ENTRY * thread_p, int page_type, int page_found_mode, int latch_mode, int cond_type, UINT64 amount)
void perfmon_pbx_hold_acquire_time (THREAD_ENTRY * thread_p, int page_type, int page_found_mode, int latch_mode, UINT64 amount)
void perfmon_pbx_lock_acquire_time (THREAD_ENTRY * thread_p, int page_type, int page_found_mode, int latch_mode, int cond_type, UINT64 amount)
void perfmon_pbx_promote (THREAD_ENTRY * thread_p, int page_type, int promote_cond, int holder_latch, int success, UINT64 amount)
void perfmon_pbx_unfix (THREAD_ENTRY * thread_p, int page_type, int buf_dirty, int dirtied_by_holder, int holder_latch)
int perfmon_print_global_stats (FILE * stream, bool cumulative, const char * substr)
int perfmon_print_stats (FILE * stream)
void perfmon_reset_stats (void)
void perfmon_server_dump_stats (const UINT64 * stats, FILE * stream, const char * substr)
void perfmon_server_dump_stats_to_buffer (const UINT64 * stats, char * buffer, int buf_size, const char * substr)
bool perfmon_server_is_stats_on (THREAD_ENTRY * thread_p)
int perfmon_start_stats (bool for_all_trans)
void perfmon_start_watch (THREAD_ENTRY * thread_p)
int perfmon_stop_stats (void)
void perfmon_stop_watch (THREAD_ENTRY * thread_p)
void perfmon_trace_dump_stats_to_buffer (const UINT64 * stats, char * buffer, int buf_size, int trace_level)
char * perfmon_unpack_stats (char * buf, UINT64 * stats)

Public Static Functions

Type Name
void perfmon_add_at_offset (THREAD_ENTRY * thread_p, int offset, UINT64 amount)
void perfmon_add_at_offset_to_global (int offset, UINT64 amount)
void perfmon_add_at_offset_to_local (THREAD_ENTRY * thread_p, int offset, UINT64 amount)
void perfmon_add_stat (THREAD_ENTRY * thread_p, PERF_STAT_ID psid, UINT64 amount)
void perfmon_add_stat_to_global (PERF_STAT_ID psid, UINT64 amount)
void perfmon_add_timeval (struct timeval * total, struct timeval * start, struct timeval * end)
void perfmon_diff_timeval (struct timeval * elapsed, struct timeval * start, struct timeval * end)
int perfmon_get_activation_flag (void)
void perfmon_inc_stat (THREAD_ENTRY * thread_p, PERF_STAT_ID psid)
void perfmon_inc_stat_to_global (PERF_STAT_ID psid)
bool perfmon_is_perf_tracking (void)
bool perfmon_is_perf_tracking_and_active (int activation_flag)
bool perfmon_is_perf_tracking_force (bool always_collect)
void perfmon_merge_child_stats_to_parent_stats (THREAD_ENTRY * thread_p)
void perfmon_merge_parallel_stats_to_tran_stats (THREAD_ENTRY * thread_p)
void perfmon_set_at_offset (THREAD_ENTRY * thread_p, int offset, int statval, bool check_watchers)
void perfmon_set_at_offset_to_global (int offset, int statval)
void perfmon_set_stat (THREAD_ENTRY * thread_p, PERF_STAT_ID psid, int statval, bool check_watchers)
void perfmon_set_stat_to_global (PERF_STAT_ID psid, int statval)
void perfmon_time_at_offset (THREAD_ENTRY * thread_p, int offset, UINT64 timediff)
void perfmon_time_bulk_at_offset (THREAD_ENTRY * thread_p, int offset, UINT64 timediff, UINT64 count)
void perfmon_time_bulk_stat (THREAD_ENTRY * thread_p, PERF_STAT_ID psid, UINT64 timediff, UINT64 count)
void perfmon_time_stat (THREAD_ENTRY * thread_p, PERF_STAT_ID psid, UINT64 timediff)
void perfmon_update_max_timeval (struct timeval * max, struct timeval * tv)
void perfmon_update_min_timeval (struct timeval * min, struct timeval * tv)

Macros

Type Name
define LOG_FIND_THREAD_TRAN_INDEX (thrd) ((thrd) ? (thrd)-&gt;tran\_index : [**logtb\_get\_current\_tran\_index**](log__impl_8h.md#function-logtb_get_current_tran_index)())
define MAX_DIAG_DATA_VALUE 0xfffffffffffffLL
define MAX_SERVER_NAMELENGTH 256
define MAX_SERVER_THREAD_COUNT 500
define MONITOR_WAITING_THREAD (elapsed) (0)
define PERF_DWB_FLUSHED_BLOCK_VOLUMES_CNT 10
define PERF_MVCC_SNAPSHOT_COUNTERS (PERF\_SNAPSHOT\_CNT \* PERF\_SNAPSHOT\_RECORD\_TYPE\_CNT \* PERF\_SNAPSHOT\_VISIBILITY\_CNT)
define PERF_MVCC_SNAPSHOT_OFFSET (snapshot, rec_type, visibility) /* multi line expression */
define PERF_OBJ_LOCK_STAT_COUNTERS (SCH\_M\_LOCK + 1)
define PERF_PAGE_FIX_COUNTERS ((PERF\_MODULE\_CNT) \* (PERF\_PAGE\_CNT) \* (PERF\_PAGE\_MODE\_CNT) \* (PERF\_HOLDER\_LATCH\_CNT) \* (PERF\_CONDITIONAL\_FIX\_CNT))
define PERF_PAGE_FIX_STAT_OFFSET (module, page_type, page_found_mode, latch_mode, cond_type) /* multi line expression */
define PERF_PAGE_FIX_TIME_COUNTERS [**PERF\_PAGE\_FIX\_COUNTERS**](perf__monitor_8h.md#define-perf_page_fix_counters)
define PERF_PAGE_FIX_TIME_OFFSET (module, page_type, page_found_mode, latch_mode, cond_type) [**PERF\_PAGE\_FIX\_STAT\_OFFSET**](perf__monitor_8h.md#define-perf_page_fix_stat_offset) ([**module**](broker__monitor_8c.md#function-timeout), [**page\_type**](broker__monitor_8c.md#function-timeout), [**page\_found\_mode**](broker__monitor_8c.md#function-timeout), latch\_mode, [**cond\_type**](broker__monitor_8c.md#function-timeout))
define PERF_PAGE_HOLD_TIME_COUNTERS ((PERF\_MODULE\_CNT) \* (PERF\_PAGE\_CNT) \* (PERF\_PAGE\_MODE\_CNT) \* (PERF\_HOLDER\_LATCH\_CNT))
define PERF_PAGE_HOLD_TIME_OFFSET (module, page_type, page_found_mode, latch_mode) /* multi line expression */
define PERF_PAGE_LOCK_TIME_COUNTERS [**PERF\_PAGE\_FIX\_COUNTERS**](perf__monitor_8h.md#define-perf_page_fix_counters)
define PERF_PAGE_LOCK_TIME_OFFSET (module, page_type, page_found_mode, latch_mode, cond_type) [**PERF\_PAGE\_FIX\_STAT\_OFFSET**](perf__monitor_8h.md#define-perf_page_fix_stat_offset) ([**module**](broker__monitor_8c.md#function-timeout), [**page\_type**](broker__monitor_8c.md#function-timeout), [**page\_found\_mode**](broker__monitor_8c.md#function-timeout), latch\_mode, [**cond\_type**](broker__monitor_8c.md#function-timeout))
define PERF_PAGE_PROMOTE_COUNTERS ((PERF\_MODULE\_CNT) \* (PERF\_PAGE\_CNT) \* (PERF\_PROMOTE\_CONDITION\_CNT) \* (PERF\_HOLDER\_LATCH\_CNT) \* (2 /\* [**success**](unittests__area_8c.md#function-success) \*/))
define PERF_PAGE_PROMOTE_STAT_OFFSET (module, page_type, promote_cond, holder_latch, success) /* multi line expression */
define PERF_PAGE_UNFIX_COUNTERS ((PERF\_MODULE\_CNT) \* (PERF\_PAGE\_CNT) \* 2 \* 2 \* (PERF\_HOLDER\_LATCH\_CNT))
define PERF_PAGE_UNFIX_STAT_OFFSET (module, page_type, buf_dirty, dirtied_by_holder, holder_latch) /* multi line expression */
define PERF_UTIME_TRACKER_ADD_TIME (thread_p, track, psid) /* multi line expression */
define PERF_UTIME_TRACKER_ADD_TIME_AND_RESTART (thread_p, track, psid) /* multi line expression */
define PERF_UTIME_TRACKER_BULK_TIME (thread_p, track, psid, count) /* multi line expression */
define PERF_UTIME_TRACKER_BULK_TIME_AND_RESTART (thread_p, track, psid, count) /* multi line expression */
define PERF_UTIME_TRACKER_INITIALIZER { [**false**](broker__monitor_8c.md#function-timeout), {0}, {0} }
define PERF_UTIME_TRACKER_START (thread_p, track) /* multi line expression */
define PERF_UTIME_TRACKER_TIME (thread_p, track, psid) /* multi line expression */
define PERF_UTIME_TRACKER_TIME_AND_RESTART (thread_p, track, psid) /* multi line expression */
define PSTAT_COUNTER_TIMER_AVG_TIME_VALUE (startvalp) (([**startvalp**](broker__monitor_8c.md#function-timeout)) + 3)
define PSTAT_COUNTER_TIMER_COUNT_VALUE (startvalp) ([**startvalp**](broker__monitor_8c.md#function-timeout))
define PSTAT_COUNTER_TIMER_MAX_TIME_VALUE (startvalp) (([**startvalp**](broker__monitor_8c.md#function-timeout)) + 2)
define PSTAT_COUNTER_TIMER_TOTAL_TIME_VALUE (startvalp) (([**startvalp**](broker__monitor_8c.md#function-timeout)) + 1)
define SAFE_DIV (a, b) ((b) == 0 ? 0 : ([**a**](broker__monitor_8c.md#function-timeout)) / (b))
define SH_MODE 0644
define TO_MSEC (elapsed) (([**int**](broker__monitor_8c.md#function-timeout))((([**elapsed**](cycle_8h.md#function-elapsed)).[**tv\_sec**](broker__monitor_8c.md#function-timeout) \* 1000) + ([**int**](broker__monitor_8c.md#function-timeout)) (([**elapsed**](cycle_8h.md#function-elapsed)).[**tv\_usec**](broker__monitor_8c.md#function-timeout) / 1000)))

Public Types Documentation

typedef DIAG_SYS_CONFIG

typedef struct diag_sys_config DIAG_SYS_CONFIG;

typedef MONITOR_CAS_CONFIG

typedef struct monitor_cas_config MONITOR_CAS_CONFIG;

typedef MONITOR_SERVER_CONFIG

typedef struct monitor_server_config MONITOR_SERVER_CONFIG;

enum PERFMON_ACTIVATION_FLAG

enum PERFMON_ACTIVATION_FLAG {
    PERFMON_ACTIVATION_FLAG_DEFAULT = 0x00000000,
    PERFMON_ACTIVATION_FLAG_DETAILED_BTREE_PAGE = 0x00000001,
    PERFMON_ACTIVATION_FLAG_MVCC_SNAPSHOT = 0x00000002,
    PERFMON_ACTIVATION_FLAG_LOCK_OBJECT = 0x00000004,
    PERFMON_ACTIVATION_FLAG_PB_HASH_ANCHOR = 0x00000008,
    PERFMON_ACTIVATION_FLAG_PB_VICTIMIZATION = 0x00000010,
    PERFMON_ACTIVATION_FLAG_THREAD = 0x00000020,
    PERFMON_ACTIVATION_FLAG_DAEMONS = 0x00000040,
    PERFMON_ACTIVATION_FLAG_FLUSHED_BLOCK_VOLUMES = 0x00000080,
    PERFMON_ACTIVATION_FLAG_LOG_RECOVERY_REDO_MAIN = 0x00000100,
    PERFMON_ACTIVATION_FLAG_LOG_RECOVERY_REDO_ASYNC = 0x00000200,
    PERFMON_ACTIVATION_FLAG_LAST = PERFMON_ACTIVATION_FLAG_LOG_RECOVERY_REDO_ASYNC,
    PERFMON_ACTIVATION_FLAG_MAX_VALUE = (PERFMON_ACTIVATION_FLAG_LAST << 1) - 1
};

typedef PERFMON_CLIENT_STAT_INFO

typedef struct perfmon_client_stat_info PERFMON_CLIENT_STAT_INFO;

enum PERF_CONDITIONAL_FIX_TYPE

enum PERF_CONDITIONAL_FIX_TYPE {
    PERF_CONDITIONAL_FIX = 0,
    PERF_UNCONDITIONAL_FIX_NO_WAIT,
    PERF_UNCONDITIONAL_FIX_WITH_WAIT,
    PERF_CONDITIONAL_FIX_CNT
};

enum PERF_HOLDER_LATCH

enum PERF_HOLDER_LATCH {
    PERF_HOLDER_LATCH_READ = 0,
    PERF_HOLDER_LATCH_WRITE,
    PERF_HOLDER_LATCH_MIXED,
    PERF_HOLDER_LATCH_CNT
};

enum PERF_MODULE_TYPE

enum PERF_MODULE_TYPE {
    PERF_MODULE_SYSTEM = 0,
    PERF_MODULE_USER,
    PERF_MODULE_VACUUM,
    PERF_MODULE_CNT
};

enum PERF_PAGE_MODE

enum PERF_PAGE_MODE {
    PERF_PAGE_MODE_OLD_LOCK_WAIT = 0,
    PERF_PAGE_MODE_OLD_NO_WAIT,
    PERF_PAGE_MODE_NEW_LOCK_WAIT,
    PERF_PAGE_MODE_NEW_NO_WAIT,
    PERF_PAGE_MODE_OLD_IN_BUFFER,
    PERF_PAGE_MODE_CNT
};

enum PERF_PAGE_TYPE

enum PERF_PAGE_TYPE {
    PERF_PAGE_UNKNOWN = 0,
    PERF_PAGE_FTAB,
    PERF_PAGE_HEAP,
    PERF_PAGE_VOLHEADER,
    PERF_PAGE_VOLBITMAP,
    PERF_PAGE_QRESULT,
    PERF_PAGE_EHASH,
    PERF_PAGE_OVERFLOW,
    PERF_PAGE_AREA,
    PERF_PAGE_CATALOG,
    PERF_PAGE_BTREE_GENERIC,
    PERF_PAGE_LOG,
    PERF_PAGE_DROPPED_FILES,
    PERF_PAGE_VACUUM_DATA,
    PERF_PAGE_BTREE_ROOT,
    PERF_PAGE_BTREE_OVF,
    PERF_PAGE_BTREE_LEAF,
    PERF_PAGE_BTREE_NONLEAF,
    PERF_PAGE_CNT
};

enum PERF_PROMOTE_CONDITION

enum PERF_PROMOTE_CONDITION {
    PERF_PROMOTE_ONLY_READER,
    PERF_PROMOTE_SHARED_READER,
    PERF_PROMOTE_CONDITION_CNT
};

enum PERF_SNAPSHOT_RECORD_TYPE

enum PERF_SNAPSHOT_RECORD_TYPE {
    PERF_SNAPSHOT_RECORD_INSERTED_VACUUMED = 0,
    PERF_SNAPSHOT_RECORD_INSERTED_CURR_TRAN,
    PERF_SNAPSHOT_RECORD_INSERTED_OTHER_TRAN,
    PERF_SNAPSHOT_RECORD_INSERTED_COMMITED,
    PERF_SNAPSHOT_RECORD_INSERTED_COMMITED_LOST,
    PERF_SNAPSHOT_RECORD_INSERTED_DELETED,
    PERF_SNAPSHOT_RECORD_DELETED_CURR_TRAN,
    PERF_SNAPSHOT_RECORD_DELETED_OTHER_TRAN,
    PERF_SNAPSHOT_RECORD_DELETED_COMMITTED,
    PERF_SNAPSHOT_RECORD_DELETED_COMMITTED_LOST,
    PERF_SNAPSHOT_RECORD_TYPE_CNT
};

enum PERF_SNAPSHOT_TYPE

enum PERF_SNAPSHOT_TYPE {
    PERF_SNAPSHOT_SATISFIES_DELETE = 0,
    PERF_SNAPSHOT_SATISFIES_DIRTY,
    PERF_SNAPSHOT_SATISFIES_SNAPSHOT,
    PERF_SNAPSHOT_SATISFIES_VACUUM,
    PERF_SNAPSHOT_CNT
};

enum PERF_SNAPSHOT_VISIBILITY

enum PERF_SNAPSHOT_VISIBILITY {
    PERF_SNAPSHOT_INVISIBLE = 0,
    PERF_SNAPSHOT_VISIBLE,
    PERF_SNAPSHOT_VISIBILITY_CNT
};

enum PERF_STAT_ID

enum PERF_STAT_ID {
    PSTAT_BASE = -1,
    PSTAT_FILE_NUM_CREATES = 0,
    PSTAT_FILE_NUM_REMOVES,
    PSTAT_FILE_NUM_IOREADS,
    PSTAT_FILE_NUM_IOWRITES,
    PSTAT_FILE_NUM_IOSYNCHES,
    PSTAT_FILE_IOSYNC_ALL,
    PSTAT_FILE_NUM_PAGE_ALLOCS,
    PSTAT_FILE_NUM_PAGE_DEALLOCS,
    PSTAT_PB_NUM_FETCHES,
    PSTAT_PB_NUM_DIRTIES,
    PSTAT_PB_NUM_IOREADS,
    PSTAT_PB_NUM_IOWRITES,
    PSTAT_PB_NUM_FLUSHED,
    PSTAT_PB_PRIVATE_QUOTA,
    PSTAT_PB_PRIVATE_COUNT,
    PSTAT_PB_FIXED_CNT,
    PSTAT_PB_DIRTY_CNT,
    PSTAT_PB_LRU1_CNT,
    PSTAT_PB_LRU2_CNT,
    PSTAT_PB_LRU3_CNT,
    PSTAT_PB_VICT_CAND,
    PSTAT_LOG_NUM_FETCHES,
    PSTAT_LOG_NUM_IOREADS,
    PSTAT_LOG_NUM_IOWRITES,
    PSTAT_LOG_NUM_APPENDRECS,
    PSTAT_LOG_NUM_ARCHIVES,
    PSTAT_LOG_NUM_START_CHECKPOINTS,
    PSTAT_LOG_NUM_END_CHECKPOINTS,
    PSTAT_LOG_NUM_WALS,
    PSTAT_LOG_NUM_REPLACEMENTS_IOWRITES,
    PSTAT_LOG_NUM_REPLACEMENTS,
    PSTAT_LK_NUM_ACQUIRED_ON_PAGES,
    PSTAT_LK_NUM_ACQUIRED_ON_OBJECTS,
    PSTAT_LK_NUM_CONVERTED_ON_PAGES,
    PSTAT_LK_NUM_CONVERTED_ON_OBJECTS,
    PSTAT_LK_NUM_RE_REQUESTED_ON_PAGES,
    PSTAT_LK_NUM_RE_REQUESTED_ON_OBJECTS,
    PSTAT_LK_NUM_WAITED_ON_PAGES,
    PSTAT_LK_NUM_WAITED_ON_OBJECTS,
    PSTAT_LK_NUM_WAITED_TIME_ON_OBJECTS,
    PSTAT_TRAN_NUM_COMMITS,
    PSTAT_TRAN_NUM_ROLLBACKS,
    PSTAT_TRAN_NUM_SAVEPOINTS,
    PSTAT_TRAN_NUM_START_TOPOPS,
    PSTAT_TRAN_NUM_END_TOPOPS,
    PSTAT_TRAN_NUM_INTERRUPTS,
    PSTAT_TRAN_NUM_PPCACHE_HITS,
    PSTAT_TRAN_NUM_PPCACHE_MISS,
    PSTAT_TRAN_NUM_TOPOP_PPCACHE_HITS,
    PSTAT_TRAN_NUM_TOPOP_PPCACHE_MISS,
    PSTAT_BT_NUM_INSERTS,
    PSTAT_BT_NUM_DELETES,
    PSTAT_BT_NUM_UPDATES,
    PSTAT_BT_NUM_COVERED,
    PSTAT_BT_NUM_NONCOVERED,
    PSTAT_BT_NUM_RESUMES,
    PSTAT_BT_NUM_MULTI_RANGE_OPT,
    PSTAT_BT_NUM_SPLITS,
    PSTAT_BT_NUM_MERGES,
    PSTAT_BT_NUM_GET_STATS,
    PSTAT_BT_ONLINE_LOAD,
    PSTAT_BT_ONLINE_INSERT_TASK,
    PSTAT_BT_ONLINE_PREPARE_TASK,
    PSTAT_BT_ONLINE_INSERT_LEAF,
    PSTAT_BT_ONLINE_NUM_INSERTS,
    PSTAT_BT_ONLINE_NUM_INSERTS_SAME_PAGE_HOLD,
    PSTAT_BT_ONLINE_NUM_RETRY,
    PSTAT_BT_ONLINE_NUM_RETRY_NICE,
    PSTAT_QM_NUM_SELECTS,
    PSTAT_QM_NUM_INSERTS,
    PSTAT_QM_NUM_DELETES,
    PSTAT_QM_NUM_UPDATES,
    PSTAT_QM_NUM_SSCANS,
    PSTAT_QM_NUM_ISCANS,
    PSTAT_QM_NUM_LSCANS,
    PSTAT_QM_NUM_SETSCANS,
    PSTAT_QM_NUM_METHSCANS,
    PSTAT_QM_NUM_NLJOINS,
    PSTAT_QM_NUM_MJOINS,
    PSTAT_QM_NUM_HASHJOINS,
    PSTAT_QM_NUM_HASHJOINS_PARTITIONED,
    PSTAT_QM_NUM_HASHJOINS_PARALLEL,
    PSTAT_QM_NUM_OBJFETCHES,
    PSTAT_QM_NUM_HOLDABLE_CURSORS,
    PSTAT_SORT_NUM_IO_PAGES,
    PSTAT_SORT_NUM_DATA_PAGES,
    PSTAT_NET_NUM_REQUESTS,
    PSTAT_FC_NUM_PAGES,
    PSTAT_FC_NUM_LOG_PAGES,
    PSTAT_FC_TOKENS,
    PSTAT_PRIOR_LSA_LIST_SIZE,
    PSTAT_PRIOR_LSA_LIST_MAXED,
    PSTAT_PRIOR_LSA_LIST_REMOVED,
    PSTAT_HA_REPL_DELAY,
    PSTAT_PC_NUM_ADD,
    PSTAT_PC_NUM_LOOKUP,
    PSTAT_PC_NUM_HIT,
    PSTAT_PC_NUM_MISS,
    PSTAT_PC_NUM_FULL,
    PSTAT_PC_NUM_DELETE,
    PSTAT_PC_NUM_INVALID_XASL_ID,
    PSTAT_PC_NUM_CACHE_ENTRIES,
    PSTAT_VAC_NUM_VACUUMED_LOG_PAGES,
    PSTAT_VAC_NUM_TO_VACUUM_LOG_PAGES,
    PSTAT_VAC_NUM_PREFETCH_REQUESTS_LOG_PAGES,
    PSTAT_VAC_NUM_PREFETCH_HITS_LOG_PAGES,
    PSTAT_HEAP_HOME_INSERTS,
    PSTAT_HEAP_BIG_INSERTS,
    PSTAT_HEAP_ASSIGN_INSERTS,
    PSTAT_HEAP_HOME_DELETES,
    PSTAT_HEAP_HOME_MVCC_DELETES,
    PSTAT_HEAP_HOME_TO_REL_DELETES,
    PSTAT_HEAP_HOME_TO_BIG_DELETES,
    PSTAT_HEAP_REL_DELETES,
    PSTAT_HEAP_REL_MVCC_DELETES,
    PSTAT_HEAP_REL_TO_HOME_DELETES,
    PSTAT_HEAP_REL_TO_BIG_DELETES,
    PSTAT_HEAP_REL_TO_REL_DELETES,
    PSTAT_HEAP_BIG_DELETES,
    PSTAT_HEAP_BIG_MVCC_DELETES,
    PSTAT_HEAP_HOME_UPDATES,
    PSTAT_HEAP_HOME_TO_REL_UPDATES,
    PSTAT_HEAP_HOME_TO_BIG_UPDATES,
    PSTAT_HEAP_REL_UPDATES,
    PSTAT_HEAP_REL_TO_HOME_UPDATES,
    PSTAT_HEAP_REL_TO_REL_UPDATES,
    PSTAT_HEAP_REL_TO_BIG_UPDATES,
    PSTAT_HEAP_BIG_UPDATES,
    PSTAT_HEAP_HOME_VACUUMS,
    PSTAT_HEAP_BIG_VACUUMS,
    PSTAT_HEAP_REL_VACUUMS,
    PSTAT_HEAP_INSID_VACUUMS,
    PSTAT_HEAP_REMOVE_VACUUMS,
    PSTAT_HEAP_INSERT_PREPARE,
    PSTAT_HEAP_INSERT_EXECUTE,
    PSTAT_HEAP_INSERT_LOG,
    PSTAT_HEAP_DELETE_PREPARE,
    PSTAT_HEAP_DELETE_EXECUTE,
    PSTAT_HEAP_DELETE_LOG,
    PSTAT_HEAP_UPDATE_PREPARE,
    PSTAT_HEAP_UPDATE_EXECUTE,
    PSTAT_HEAP_UPDATE_LOG,
    PSTAT_HEAP_VACUUM_PREPARE,
    PSTAT_HEAP_VACUUM_EXECUTE,
    PSTAT_HEAP_VACUUM_LOG,
    PSTAT_HEAP_STATS_SYNC_BESTSPACE,
    PSTAT_HF_NUM_STATS_ENTRIES,
    PSTAT_HF_NUM_STATS_MAXED,
    PSTAT_HF_BEST_SPACE_ADD,
    PSTAT_HF_BEST_SPACE_DEL,
    PSTAT_HF_BEST_SPACE_FIND,
    PSTAT_HF_HEAP_FIND_PAGE_BEST_SPACE,
    PSTAT_HF_HEAP_FIND_BEST_PAGE,
    PSTAT_BT_FIX_OVF_OIDS,
    PSTAT_BT_UNIQUE_RLOCKS,
    PSTAT_BT_UNIQUE_WLOCKS,
    PSTAT_BT_LEAF,
    PSTAT_BT_TRAVERSE,
    PSTAT_BT_FIND_UNIQUE,
    PSTAT_BT_FIND_UNIQUE_TRAVERSE,
    PSTAT_BT_RANGE_SEARCH,
    PSTAT_BT_RANGE_SEARCH_TRAVERSE,
    PSTAT_BT_INSERT,
    PSTAT_BT_INSERT_TRAVERSE,
    PSTAT_BT_DELETE,
    PSTAT_BT_DELETE_TRAVERSE,
    PSTAT_BT_MVCC_DELETE,
    PSTAT_BT_MVCC_DELETE_TRAVERSE,
    PSTAT_BT_MARK_DELETE,
    PSTAT_BT_MARK_DELETE_TRAVERSE,
    PSTAT_BT_UNDO_INSERT,
    PSTAT_BT_UNDO_INSERT_TRAVERSE,
    PSTAT_BT_UNDO_DELETE,
    PSTAT_BT_UNDO_DELETE_TRAVERSE,
    PSTAT_BT_UNDO_MVCC_DELETE,
    PSTAT_BT_UNDO_MVCC_DELETE_TRAVERSE,
    PSTAT_BT_VACUUM,
    PSTAT_BT_VACUUM_TRAVERSE,
    PSTAT_BT_VACUUM_INSID,
    PSTAT_BT_VACUUM_INSID_TRAVERSE,
    PSTAT_VAC_MASTER,
    PSTAT_VAC_JOB,
    PSTAT_VAC_WORKER_PROCESS_LOG,
    PSTAT_VAC_WORKER_EXECUTE,
    PSTAT_LOG_SNAPSHOT_TIME_COUNTERS,
    PSTAT_LOG_SNAPSHOT_RETRY_COUNTERS,
    PSTAT_LOG_TRAN_COMPLETE_TIME_COUNTERS,
    PSTAT_LOG_OLDEST_MVCC_TIME_COUNTERS,
    PSTAT_LOG_OLDEST_MVCC_RETRY_COUNTERS,
    PSTAT_PB_HIT_RATIO,
    PSTAT_LOG_HIT_RATIO,
    PSTAT_VACUUM_DATA_HIT_RATIO,
    PSTAT_PB_VACUUM_EFFICIENCY,
    PSTAT_PB_VACUUM_FETCH_RATIO,
    PSTAT_PB_PAGE_LOCK_ACQUIRE_TIME_10USEC,
    PSTAT_PB_PAGE_HOLD_ACQUIRE_TIME_10USEC,
    PSTAT_PB_PAGE_FIX_ACQUIRE_TIME_10USEC,
    PSTAT_PB_PAGE_ALLOCATE_TIME_RATIO,
    PSTAT_PB_PAGE_PROMOTE_SUCCESS,
    PSTAT_PB_PAGE_PROMOTE_FAILED,
    PSTAT_PB_PAGE_PROMOTE_TOTAL_TIME_10USEC,
    PSTAT_PB_UNFIX_VOID_TO_PRIVATE_TOP,
    PSTAT_PB_UNFIX_VOID_TO_PRIVATE_MID,
    PSTAT_PB_UNFIX_VOID_TO_SHARED_MID,
    PSTAT_PB_UNFIX_LRU_ONE_PRV_TO_SHR_MID,
    PSTAT_PB_UNFIX_LRU_TWO_PRV_TO_SHR_MID,
    PSTAT_PB_UNFIX_LRU_THREE_PRV_TO_SHR_MID,
    PSTAT_PB_UNFIX_LRU_TWO_PRV_KEEP,
    PSTAT_PB_UNFIX_LRU_TWO_SHR_KEEP,
    PSTAT_PB_UNFIX_LRU_TWO_PRV_TO_TOP,
    PSTAT_PB_UNFIX_LRU_TWO_SHR_TO_TOP,
    PSTAT_PB_UNFIX_LRU_THREE_PRV_TO_TOP,
    PSTAT_PB_UNFIX_LRU_THREE_SHR_TO_TOP,
    PSTAT_PB_UNFIX_LRU_ONE_PRV_KEEP,
    PSTAT_PB_UNFIX_LRU_ONE_SHR_KEEP,
    PSTAT_PB_UNFIX_VOID_TO_PRIVATE_TOP_VAC,
    PSTAT_PB_UNFIX_LRU_ONE_KEEP_VAC,
    PSTAT_PB_UNFIX_LRU_TWO_KEEP_VAC,
    PSTAT_PB_UNFIX_LRU_THREE_KEEP_VAC,
    PSTAT_PB_UNFIX_VOID_AOUT_FOUND,
    PSTAT_PB_UNFIX_VOID_AOUT_NOT_FOUND,
    PSTAT_PB_UNFIX_VOID_AOUT_FOUND_VAC,
    PSTAT_PB_UNFIX_VOID_AOUT_NOT_FOUND_VAC,
    PSTAT_PB_NUM_HASH_ANCHOR_WAITS,
    PSTAT_PB_TIME_HASH_ANCHOR_WAIT,
    PSTAT_PB_FLUSH_COLLECT,
    PSTAT_PB_FLUSH_FLUSH,
    PSTAT_PB_FLUSH_SLEEP,
    PSTAT_PB_FLUSH_COLLECT_PER_PAGE,
    PSTAT_PB_FLUSH_FLUSH_PER_PAGE,
    PSTAT_PB_FLUSH_PAGE_FLUSHED,
    PSTAT_PB_FLUSH_SEND_DIRTY_TO_POST_FLUSH,
    PSTAT_PB_NUM_SKIPPED_FLUSH,
    PSTAT_PB_NUM_SKIPPED_NEED_WAL,
    PSTAT_PB_NUM_SKIPPED_ALREADY_FLUSHED,
    PSTAT_PB_NUM_SKIPPED_FIXED_OR_HOT,
    PSTAT_PB_COMPENSATE_FLUSH,
    PSTAT_PB_ASSIGN_DIRECT_BCB,
    PSTAT_PB_WAKE_FLUSH_WAITER,
    PSTAT_PB_ALLOC_BCB,
    PSTAT_PB_ALLOC_BCB_SEARCH_VICTIM,
    PSTAT_PB_ALLOC_BCB_COND_WAIT_HIGH_PRIO,
    PSTAT_PB_ALLOC_BCB_COND_WAIT_LOW_PRIO,
    PSTAT_PB_ALLOC_BCB_PRIORITIZE_VACUUM,
    PSTAT_PB_VICTIM_USE_INVALID_BCB,
    PSTAT_PB_VICTIM_SEARCH_OWN_PRIVATE_LISTS,
    PSTAT_PB_VICTIM_SEARCH_OTHERS_PRIVATE_LISTS,
    PSTAT_PB_VICTIM_SEARCH_SHARED_LISTS,
    PSTAT_PB_VICTIM_ASSIGN_DIRECT_VACUUM_VOID,
    PSTAT_PB_VICTIM_ASSIGN_DIRECT_VACUUM_LRU,
    PSTAT_PB_VICTIM_ASSIGN_DIRECT_FLUSH,
    PSTAT_PB_VICTIM_ASSIGN_DIRECT_PANIC,
    PSTAT_PB_VICTIM_ASSIGN_DIRECT_ADJUST,
    PSTAT_PB_VICTIM_ASSIGN_DIRECT_ADJUST_TO_VACUUM,
    PSTAT_PB_VICTIM_ASSIGN_DIRECT_SEARCH_FOR_FLUSH,
    PSTAT_PB_VICTIM_SHARED_LRU_SUCCESS,
    PSTAT_PB_OWN_VICTIM_PRIVATE_LRU_SUCCESS,
    PSTAT_PB_VICTIM_OTHER_PRIVATE_LRU_SUCCESS,
    PSTAT_PB_VICTIM_SHARED_LRU_FAIL,
    PSTAT_PB_VICTIM_OWN_PRIVATE_LRU_FAIL,
    PSTAT_PB_VICTIM_OTHER_PRIVATE_LRU_FAIL,
    PSTAT_PB_VICTIM_ALL_LRU_FAIL,
    PSTAT_PB_VICTIM_GET_FROM_LRU,
    PSTAT_PB_VICTIM_GET_FROM_LRU_LIST_WAS_EMPTY,
    PSTAT_PB_VICTIM_GET_FROM_LRU_FAIL,
    PSTAT_PB_VICTIM_GET_FROM_LRU_BAD_HINT,
    PSTAT_PB_LFCQ_LRU_PRV_GET_CALLS,
    PSTAT_PB_LFCQ_LRU_PRV_GET_EMPTY,
    PSTAT_PB_LFCQ_LRU_PRV_GET_BIG,
    PSTAT_PB_LFCQ_LRU_SHR_GET_CALLS,
    PSTAT_PB_LFCQ_LRU_SHR_GET_EMPTY,
    PSTAT_DWB_FLUSH_BLOCK_TIME_COUNTERS,
    PSTAT_DWB_FILE_SYNC_HELPER_TIME_COUNTERS,
    PSTAT_DWB_FLUSH_BLOCK_COND_WAIT,
    PSTAT_DWB_FLUSH_BLOCK_SORT_TIME_COUNTERS,
    PSTAT_DWB_DECACHE_PAGES_AFTER_WRITE,
    PSTAT_DWB_WAIT_FLUSH_BLOCK_TIME_COUNTERS,
    PSTAT_DWB_WAIT_FILE_SYNC_HELPER_TIME_COUNTERS,
    PSTAT_DWB_FLUSH_FORCE_TIME_COUNTERS,
    PSTAT_LOG_LZ4_COMPRESS_TIME_COUNTERS,
    PSTAT_LOG_LZ4_DECOMPRESS_TIME_COUNTERS,
    PSTAT_PB_WAIT_THREADS_HIGH_PRIO,
    PSTAT_PB_WAIT_THREADS_LOW_PRIO,
    PSTAT_PB_FLUSHED_BCBS_WAIT_FOR_ASSIGN,
    PSTAT_PB_LFCQ_BIG_PRV_NUM,
    PSTAT_PB_LFCQ_PRV_NUM,
    PSTAT_PB_LFCQ_SHR_NUM,
    PSTAT_PB_AVOID_DEALLOC_CNT,
    PSTAT_PB_AVOID_VICTIM_CNT,
    PSTAT_LOG_REDO_ASYNC,
    PSTAT_LOG_REDO_FUNC_EXEC,
    PSTAT_REGU_EVAL_TIME_10USEC,
    PSTAT_REGU_NUM_FETCHES,
    PSTAT_REGU_NUM_IOREADS,
    PSTAT_REGU_NUM_CALL_EVALS,
    PSTAT_PBX_FIX_COUNTERS,
    PSTAT_PBX_PROMOTE_COUNTERS,
    PSTAT_PBX_PROMOTE_TIME_COUNTERS,
    PSTAT_PBX_UNFIX_COUNTERS,
    PSTAT_PBX_LOCK_TIME_COUNTERS,
    PSTAT_PBX_HOLD_TIME_COUNTERS,
    PSTAT_PBX_FIX_TIME_COUNTERS,
    PSTAT_MVCC_SNAPSHOT_COUNTERS,
    PSTAT_OBJ_LOCK_TIME_COUNTERS,
    PSTAT_THREAD_STATS,
    PSTAT_THREAD_DAEMON_STATS,
    PSTAT_DWB_FLUSHED_BLOCK_NUM_VOLUMES,
    PSTAT_LOAD_THREAD_STATS,
    PSTAT_COUNT
};

typedef PERF_UTIME_TRACKER

typedef struct perf_utime_tracker PERF_UTIME_TRACKER;

typedef PSTAT_DUMP_IN_BUFFER_FUNC

typedef void(* PSTAT_DUMP_IN_BUFFER_FUNC) (char **, const UINT64 *stat_vals, int *remaining_size);

typedef PSTAT_DUMP_IN_FILE_FUNC

typedef void(* PSTAT_DUMP_IN_FILE_FUNC) (FILE *, const UINT64 *stat_vals);

typedef PSTAT_GLOBAL

typedef struct pstat_global PSTAT_GLOBAL;

typedef PSTAT_LOAD_FUNC

typedef int(* PSTAT_LOAD_FUNC) (void);

typedef PSTAT_METADATA

typedef struct pstat_metadata PSTAT_METADATA;

enum PSTAT_VALUE_TYPE

enum PSTAT_VALUE_TYPE {
    PSTAT_ACCUMULATE_SINGLE_VALUE,
    PSTAT_PEEK_SINGLE_VALUE,
    PSTAT_COUNTER_TIMER_VALUE,
    PSTAT_COMPUTED_RATIO_VALUE,
    PSTAT_COMPLEX_VALUE
};

typedef T_CLIENT_MONITOR_CONFIG

typedef struct t_client_monitor_config T_CLIENT_MONITOR_CONFIG;

typedef T_DIAG_MONITOR_CAS_VALUE

typedef struct t_diag_monitor_cas_value T_DIAG_MONITOR_CAS_VALUE;

typedef T_DIAG_MONITOR_DB_VALUE

typedef struct t_diag_monitor_db_value T_DIAG_MONITOR_DB_VALUE;

typedef T_DIAG_SERVER_TYPE

typedef enum t_diag_server_type T_DIAG_SERVER_TYPE;

typedef T_DIAG_SHM_MODE

typedef enum t_diag_shm_mode T_DIAG_SHM_MODE;

typedef T_SHM_DIAG_INFO_SERVER

typedef struct t_shm_diag_info_server T_SHM_DIAG_INFO_SERVER;

enum t_diag_server_type

enum t_diag_server_type {
    DIAG_SERVER_DB = 00000,
    DIAG_SERVER_CAS = 10000,
    DIAG_SERVER_DRIVER = 20000,
    DIAG_SERVER_RESOURCE = 30000
};

enum t_diag_shm_mode

enum t_diag_shm_mode {
    DIAG_SHM_MODE_ADMIN = 0,
    DIAG_SHM_MODE_MONITOR = 1
};

Public Attributes Documentation

variable perfmon_Iscollecting_stats

bool perfmon_Iscollecting_stats;

variable pstat_Global

PSTAT_GLOBAL pstat_Global;

variable pstat_Metadata

PSTAT_METADATA pstat_Metadata[];

Public Functions Documentation

function perfmon_allocate_packed_values_buffer

char * perfmon_allocate_packed_values_buffer (
    void
) 

function perfmon_allocate_values

UINT64 * perfmon_allocate_values (
    void
) 

function perfmon_calc_diff_stats

int perfmon_calc_diff_stats (
    UINT64 * stats_diff,
    UINT64 * new_stats,
    UINT64 * old_stats,
    bool need_pgbuf_stat
) 

function perfmon_calc_diff_stats_for_trace

int perfmon_calc_diff_stats_for_trace (
    UINT64 * stats_diff,
    UINT64 * new_stats,
    UINT64 * old_stats
) 

function perfmon_copy_values

void perfmon_copy_values (
    UINT64 * src,
    UINT64 * dest
) 

function perfmon_db_flushed_block_volumes

void perfmon_db_flushed_block_volumes (
    THREAD_ENTRY * thread_p,
    int num_volumes
) 

function perfmon_destroy_parallel_stats

void perfmon_destroy_parallel_stats (
    THREAD_ENTRY * thread_p
) 

function perfmon_er_log_current_stats

void perfmon_er_log_current_stats (
    THREAD_ENTRY * thread_p
) 

function perfmon_finalize

void perfmon_finalize (
    void
) 

function perfmon_get_current_times

void perfmon_get_current_times (
    time_t * cpu_usr_time,
    time_t * cpu_sys_time,
    time_t * elapsed_time
) 

function perfmon_get_from_statistic

UINT64 perfmon_get_from_statistic (
    THREAD_ENTRY * thread_p,
    const  int statistic_id
) 

function perfmon_get_global_stats

int perfmon_get_global_stats (
    void
) 

function perfmon_get_number_of_statistic_values

int perfmon_get_number_of_statistic_values (
    void
) 

function perfmon_get_stats

int perfmon_get_stats (
    void
) 

function perfmon_get_stats_and_clear

UINT64 perfmon_get_stats_and_clear (
    THREAD_ENTRY * thread_p,
    const  char * stat_name
) 

function perfmon_initialize

int perfmon_initialize (
    int num_trans
) 

function perfmon_initialize_parallel_stats

void perfmon_initialize_parallel_stats (
    THREAD_ENTRY * thread_p
) 

function perfmon_lk_waited_time_on_objects

void perfmon_lk_waited_time_on_objects (
    THREAD_ENTRY * thread_p,
    int lock_mode,
    UINT64 amount
) 

function perfmon_mvcc_snapshot

void perfmon_mvcc_snapshot (
    THREAD_ENTRY * thread_p,
    int snapshot,
    int rec_type,
    int visibility
) 

function perfmon_pack_stats

char * perfmon_pack_stats (
    char * buf,
    UINT64 * stats
) 

function perfmon_pbx_fix

void perfmon_pbx_fix (
    THREAD_ENTRY * thread_p,
    int page_type,
    int page_found_mode,
    int latch_mode,
    int cond_type
) 

function perfmon_pbx_fix_acquire_time

void perfmon_pbx_fix_acquire_time (
    THREAD_ENTRY * thread_p,
    int page_type,
    int page_found_mode,
    int latch_mode,
    int cond_type,
    UINT64 amount
) 

function perfmon_pbx_hold_acquire_time

void perfmon_pbx_hold_acquire_time (
    THREAD_ENTRY * thread_p,
    int page_type,
    int page_found_mode,
    int latch_mode,
    UINT64 amount
) 

function perfmon_pbx_lock_acquire_time

void perfmon_pbx_lock_acquire_time (
    THREAD_ENTRY * thread_p,
    int page_type,
    int page_found_mode,
    int latch_mode,
    int cond_type,
    UINT64 amount
) 

function perfmon_pbx_promote

void perfmon_pbx_promote (
    THREAD_ENTRY * thread_p,
    int page_type,
    int promote_cond,
    int holder_latch,
    int success,
    UINT64 amount
) 

function perfmon_pbx_unfix

void perfmon_pbx_unfix (
    THREAD_ENTRY * thread_p,
    int page_type,
    int buf_dirty,
    int dirtied_by_holder,
    int holder_latch
) 

function perfmon_print_global_stats

int perfmon_print_global_stats (
    FILE * stream,
    bool cumulative,
    const  char * substr
) 

function perfmon_print_stats

int perfmon_print_stats (
    FILE * stream
) 

function perfmon_reset_stats

void perfmon_reset_stats (
    void
) 

function perfmon_server_dump_stats

void perfmon_server_dump_stats (
    const  UINT64 * stats,
    FILE * stream,
    const  char * substr
) 

function perfmon_server_dump_stats_to_buffer

void perfmon_server_dump_stats_to_buffer (
    const  UINT64 * stats,
    char * buffer,
    int buf_size,
    const  char * substr
) 

function perfmon_server_is_stats_on

bool perfmon_server_is_stats_on (
    THREAD_ENTRY * thread_p
) 

function perfmon_start_stats

int perfmon_start_stats (
    bool for_all_trans
) 

function perfmon_start_watch

void perfmon_start_watch (
    THREAD_ENTRY * thread_p
) 

function perfmon_stop_stats

int perfmon_stop_stats (
    void
) 

function perfmon_stop_watch

void perfmon_stop_watch (
    THREAD_ENTRY * thread_p
) 

function perfmon_trace_dump_stats_to_buffer

void perfmon_trace_dump_stats_to_buffer (
    const  UINT64 * stats,
    char * buffer,
    int buf_size,
    int trace_level
) 

function perfmon_unpack_stats

char * perfmon_unpack_stats (
    char * buf,
    UINT64 * stats
) 

Public Static Functions Documentation

function perfmon_add_at_offset

static void perfmon_add_at_offset (
    THREAD_ENTRY * thread_p,
    int offset,
    UINT64 amount
) 

function perfmon_add_at_offset_to_global

static void perfmon_add_at_offset_to_global (
    int offset,
    UINT64 amount
) 

function perfmon_add_at_offset_to_local

static void perfmon_add_at_offset_to_local (
    THREAD_ENTRY * thread_p,
    int offset,
    UINT64 amount
) 

function perfmon_add_stat

static void perfmon_add_stat (
    THREAD_ENTRY * thread_p,
    PERF_STAT_ID psid,
    UINT64 amount
) 

function perfmon_add_stat_to_global

static void perfmon_add_stat_to_global (
    PERF_STAT_ID psid,
    UINT64 amount
) 

function perfmon_add_timeval

static void perfmon_add_timeval (
    struct  timeval * total,
    struct  timeval * start,
    struct  timeval * end
) 

function perfmon_diff_timeval

static void perfmon_diff_timeval (
    struct  timeval * elapsed,
    struct  timeval * start,
    struct  timeval * end
) 

function perfmon_get_activation_flag

static int perfmon_get_activation_flag (
    void
) 

function perfmon_inc_stat

static void perfmon_inc_stat (
    THREAD_ENTRY * thread_p,
    PERF_STAT_ID psid
) 

function perfmon_inc_stat_to_global

static void perfmon_inc_stat_to_global (
    PERF_STAT_ID psid
) 

function perfmon_is_perf_tracking

static bool perfmon_is_perf_tracking (
    void
) 

function perfmon_is_perf_tracking_and_active

static bool perfmon_is_perf_tracking_and_active (
    int activation_flag
) 

function perfmon_is_perf_tracking_force

static bool perfmon_is_perf_tracking_force (
    bool always_collect
) 

function perfmon_merge_child_stats_to_parent_stats

static void perfmon_merge_child_stats_to_parent_stats (
    THREAD_ENTRY * thread_p
) 

function perfmon_merge_parallel_stats_to_tran_stats

static void perfmon_merge_parallel_stats_to_tran_stats (
    THREAD_ENTRY * thread_p
) 

function perfmon_set_at_offset

static void perfmon_set_at_offset (
    THREAD_ENTRY * thread_p,
    int offset,
    int statval,
    bool check_watchers
) 

function perfmon_set_at_offset_to_global

static void perfmon_set_at_offset_to_global (
    int offset,
    int statval
) 

function perfmon_set_stat

static void perfmon_set_stat (
    THREAD_ENTRY * thread_p,
    PERF_STAT_ID psid,
    int statval,
    bool check_watchers
) 

function perfmon_set_stat_to_global

static void perfmon_set_stat_to_global (
    PERF_STAT_ID psid,
    int statval
) 

function perfmon_time_at_offset

static void perfmon_time_at_offset (
    THREAD_ENTRY * thread_p,
    int offset,
    UINT64 timediff
) 

function perfmon_time_bulk_at_offset

static void perfmon_time_bulk_at_offset (
    THREAD_ENTRY * thread_p,
    int offset,
    UINT64 timediff,
    UINT64 count
) 

function perfmon_time_bulk_stat

static void perfmon_time_bulk_stat (
    THREAD_ENTRY * thread_p,
    PERF_STAT_ID psid,
    UINT64 timediff,
    UINT64 count
) 

function perfmon_time_stat

static void perfmon_time_stat (
    THREAD_ENTRY * thread_p,
    PERF_STAT_ID psid,
    UINT64 timediff
) 

function perfmon_update_max_timeval

static void perfmon_update_max_timeval (
    struct  timeval * max,
    struct  timeval * tv
) 

function perfmon_update_min_timeval

static void perfmon_update_min_timeval (
    struct  timeval * min,
    struct  timeval * tv
) 

Macro Definition Documentation

define LOG_FIND_THREAD_TRAN_INDEX

#define LOG_FIND_THREAD_TRAN_INDEX (
    thrd
) `((thrd) ? (thrd)->tran_index : logtb_get_current_tran_index ())`

define MAX_DIAG_DATA_VALUE

#define MAX_DIAG_DATA_VALUE `0xfffffffffffffLL`

define MAX_SERVER_NAMELENGTH

#define MAX_SERVER_NAMELENGTH `256`

define MAX_SERVER_THREAD_COUNT

#define MAX_SERVER_THREAD_COUNT `500`

define MONITOR_WAITING_THREAD

#define MONITOR_WAITING_THREAD (
    elapsed
) `(0)`

define PERF_DWB_FLUSHED_BLOCK_VOLUMES_CNT

#define PERF_DWB_FLUSHED_BLOCK_VOLUMES_CNT `10`

define PERF_MVCC_SNAPSHOT_COUNTERS

#define PERF_MVCC_SNAPSHOT_COUNTERS `( PERF_SNAPSHOT_CNT * PERF_SNAPSHOT_RECORD_TYPE_CNT * PERF_SNAPSHOT_VISIBILITY_CNT )`

define PERF_MVCC_SNAPSHOT_OFFSET

#define PERF_MVCC_SNAPSHOT_OFFSET (
    snapshot,
    rec_type,
    visibility
) `/* multi line expression */`

define PERF_OBJ_LOCK_STAT_COUNTERS

#define PERF_OBJ_LOCK_STAT_COUNTERS `( SCH_M_LOCK + 1)`

define PERF_PAGE_FIX_COUNTERS

#define PERF_PAGE_FIX_COUNTERS `(( PERF_MODULE_CNT ) * ( PERF_PAGE_CNT ) * ( PERF_PAGE_MODE_CNT ) * ( PERF_HOLDER_LATCH_CNT ) * ( PERF_CONDITIONAL_FIX_CNT ))`

define PERF_PAGE_FIX_STAT_OFFSET

#define PERF_PAGE_FIX_STAT_OFFSET (
    module,
    page_type,
    page_found_mode,
    latch_mode,
    cond_type
) `/* multi line expression */`

define PERF_PAGE_FIX_TIME_COUNTERS

#define PERF_PAGE_FIX_TIME_COUNTERS `PERF_PAGE_FIX_COUNTERS`

define PERF_PAGE_FIX_TIME_OFFSET

#define PERF_PAGE_FIX_TIME_OFFSET (
    module,
    page_type,
    page_found_mode,
    latch_mode,
    cond_type
) `PERF_PAGE_FIX_STAT_OFFSET ( module , page_type , page_found_mode , latch_mode, cond_type )`

define PERF_PAGE_HOLD_TIME_COUNTERS

#define PERF_PAGE_HOLD_TIME_COUNTERS `(( PERF_MODULE_CNT ) * ( PERF_PAGE_CNT ) * ( PERF_PAGE_MODE_CNT ) * ( PERF_HOLDER_LATCH_CNT ))`

define PERF_PAGE_HOLD_TIME_OFFSET

#define PERF_PAGE_HOLD_TIME_OFFSET (
    module,
    page_type,
    page_found_mode,
    latch_mode
) `/* multi line expression */`

define PERF_PAGE_LOCK_TIME_COUNTERS

#define PERF_PAGE_LOCK_TIME_COUNTERS `PERF_PAGE_FIX_COUNTERS`

define PERF_PAGE_LOCK_TIME_OFFSET

#define PERF_PAGE_LOCK_TIME_OFFSET (
    module,
    page_type,
    page_found_mode,
    latch_mode,
    cond_type
) `PERF_PAGE_FIX_STAT_OFFSET ( module , page_type , page_found_mode , latch_mode, cond_type )`

define PERF_PAGE_PROMOTE_COUNTERS

#define PERF_PAGE_PROMOTE_COUNTERS `(( PERF_MODULE_CNT ) * ( PERF_PAGE_CNT ) * ( PERF_PROMOTE_CONDITION_CNT ) * ( PERF_HOLDER_LATCH_CNT ) * (2 /* success */))`

define PERF_PAGE_PROMOTE_STAT_OFFSET

#define PERF_PAGE_PROMOTE_STAT_OFFSET (
    module,
    page_type,
    promote_cond,
    holder_latch,
    success
) `/* multi line expression */`

define PERF_PAGE_UNFIX_COUNTERS

#define PERF_PAGE_UNFIX_COUNTERS `(( PERF_MODULE_CNT ) * ( PERF_PAGE_CNT ) * 2 * 2 * ( PERF_HOLDER_LATCH_CNT ))`

define PERF_PAGE_UNFIX_STAT_OFFSET

#define PERF_PAGE_UNFIX_STAT_OFFSET (
    module,
    page_type,
    buf_dirty,
    dirtied_by_holder,
    holder_latch
) `/* multi line expression */`

define PERF_UTIME_TRACKER_ADD_TIME

#define PERF_UTIME_TRACKER_ADD_TIME (
    thread_p,
    track,
    psid
) `/* multi line expression */`

define PERF_UTIME_TRACKER_ADD_TIME_AND_RESTART

#define PERF_UTIME_TRACKER_ADD_TIME_AND_RESTART (
    thread_p,
    track,
    psid
) `/* multi line expression */`

define PERF_UTIME_TRACKER_BULK_TIME

#define PERF_UTIME_TRACKER_BULK_TIME (
    thread_p,
    track,
    psid,
    count
) `/* multi line expression */`

define PERF_UTIME_TRACKER_BULK_TIME_AND_RESTART

#define PERF_UTIME_TRACKER_BULK_TIME_AND_RESTART (
    thread_p,
    track,
    psid,
    count
) `/* multi line expression */`

define PERF_UTIME_TRACKER_INITIALIZER

#define PERF_UTIME_TRACKER_INITIALIZER `{ false , {0}, {0} }`

define PERF_UTIME_TRACKER_START

#define PERF_UTIME_TRACKER_START (
    thread_p,
    track
) `/* multi line expression */`

define PERF_UTIME_TRACKER_TIME

#define PERF_UTIME_TRACKER_TIME (
    thread_p,
    track,
    psid
) `/* multi line expression */`

define PERF_UTIME_TRACKER_TIME_AND_RESTART

#define PERF_UTIME_TRACKER_TIME_AND_RESTART (
    thread_p,
    track,
    psid
) `/* multi line expression */`

define PSTAT_COUNTER_TIMER_AVG_TIME_VALUE

#define PSTAT_COUNTER_TIMER_AVG_TIME_VALUE (
    startvalp
) `(( startvalp ) + 3)`

define PSTAT_COUNTER_TIMER_COUNT_VALUE

#define PSTAT_COUNTER_TIMER_COUNT_VALUE (
    startvalp
) `( startvalp )`

define PSTAT_COUNTER_TIMER_MAX_TIME_VALUE

#define PSTAT_COUNTER_TIMER_MAX_TIME_VALUE (
    startvalp
) `(( startvalp ) + 2)`

define PSTAT_COUNTER_TIMER_TOTAL_TIME_VALUE

#define PSTAT_COUNTER_TIMER_TOTAL_TIME_VALUE (
    startvalp
) `(( startvalp ) + 1)`

define SAFE_DIV

#define SAFE_DIV (
    a,
    b
) `((b) == 0 ? 0 : ( a ) / (b))`

define SH_MODE

#define SH_MODE `0644`

define TO_MSEC

#define TO_MSEC (
    elapsed
) `(( int )((( elapsed ). tv_sec * 1000) + ( int ) (( elapsed ). tv_usec / 1000)))`


The documentation for this class was generated from the following file cubrid/src/base/perf_monitor.h