From 780b92ada9afcf1d58085a83a0b9e6bc982203d1 Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Tue, 17 Feb 2015 17:25:57 +0000 Subject: Imported from /home/lorry/working-area/delta_berkeleydb/db-6.1.23.tar.gz. --- docs/programmer_reference/program_perfmon.html | 1171 ++++++++++++------------ 1 file changed, 594 insertions(+), 577 deletions(-) (limited to 'docs/programmer_reference/program_perfmon.html') diff --git a/docs/programmer_reference/program_perfmon.html b/docs/programmer_reference/program_perfmon.html index a72e35d2..1a91ba16 100644 --- a/docs/programmer_reference/program_perfmon.html +++ b/docs/programmer_reference/program_perfmon.html @@ -14,17 +14,16 @@ -

- The Performance Event Monitoring feature uses Solaris DTrace or - Linux SystemTap to "publish" interesting events as they occur - inside of Berkeley DB. - The operating system utilities dtrace or - stap run scripts which select, analyze, - and display events. There is no need to modify the application. - Any application which uses that Berkeley DB library can be monitored. - For more information about these instrumentation tools refer to the - following pages: -

+

+ The Performance Event Monitoring feature uses Solaris + DTrace or Linux SystemTap to "publish" interesting events as + they occur inside of Berkeley DB. The operating system + utilities dtrace or stap + run scripts which select, analyze, and display events. There + is no need to modify the application. Any application which + uses that Berkeley DB library can be monitored. For more + information about these instrumentation tools refer to the + following pages: +

DTrace
- http://www.oracle.com/technetwork/systems/dtrace/dtrace/index-jsp-137532.html + http://www.oracle.com/technetwork/server-storage/solaris11/technologies/dtrace-1930301.html
SystemTap @@ -90,59 +91,64 @@

-

-

- Performance Event Monitoring is available for operating systems where - DTrace or SystemTap supports static probe points in user applications, - such as Solaris 10 and OpenSolaris, some versions of Linux, - and Mac OS X 10.6 and later. - By including --enable-dtrace to the configuration options, the resulting - libraries will include probe points for these event categories:

+

+ Performance Event Monitoring is available for operating + systems where DTrace or SystemTap supports static probe points + in user applications, such as Solaris 10 and OpenSolaris, some + versions of Linux, and Mac OS X 10.6 and later. By including + --enable-dtrace to the configuration options, the resulting + libraries will include probe points for these event + categories: +

+

+ These probe points are implemented as + user-level statically defined traces (USDT's) for DTrace, and + static userspace markers for SystemTap. +

- These probe points are implemented as user-level statically defined traces - (USDT's) for DTrace, and static userspace markers for SystemTap. -

-

- To monitor the statistics values as they are updated include - the --enable-perfmon-statistics configuration option. - This option generates probe points for updates to many of the counters - whose values are displayed by the db_stat utility - or returned by the various statistics functions. - The "cache" example script uses a few of these probe points. -

-

- Performance Event Monitoring is intended to be suitable for production - applications. Running Berkeley DB with DTrace or SystemTap support - built in has little effect on execution speed until probes are enabled - at runtime by the dtrace - or stap programs. -

+ To monitor the statistics values as they are updated + include the --enable-perfmon-statistics configuration option. + This option generates probe points for updates to many of the + counters whose values are displayed by the db_stat utility or + returned by the various statistics functions. The "cache" + example script uses a few of these probe points. +

- The list of available events may be displayed by running 'make listprobes' - after building the libdb-5.3 shared library. -

+ Performance Event Monitoring is intended to be suitable for + production applications. Running Berkeley DB with DTrace or + SystemTap support built in has little effect on execution + speed until probes are enabled at runtime by the + dtrace or stap + programs. +

+

+ The list of available events may be displayed by running + 'make listprobes' after building the libdb-6.1 + shared library. +

@@ -151,30 +157,32 @@
+

+ The DTrace probe provider for Berkeley DB is named + 'bdb'. A simple dtrace command to monitor all + dtrace-enabled Berkeley DB activity in the system is: +

- The DTrace probe provider for Berkeley DB is named 'bdb'. A simple - dtrace command to monitor all dtrace-enabled Berkeley DB activity - in the system is: -

+ dtrace -Zn 'bdb*::: { printf("%s", probename); }' + +

- - dtrace -Zn 'bdb*::: { printf("%s", probename); }' - -

+ DTrace requires elevated privileges in order to run. On + Solaris you can avoid running as root by giving any users + who need to run dtrace the dtrace_proc + or dtrace_user privilege in + /etc/user_attr. +

- DTrace requires elevated privileges in order to run. On Solaris you can - avoid running as root by giving any users who need to run - dtrace the dtrace_proc or dtrace_user - privilege in /etc/user_attr. -

-

- DTrace works on both 32 and 64 bit applications. However, when tracing - a 32-bit application on a 64-bit processor it might be necessary to pass - a "32 bit" option to dtrace. Without this option - the D language might use a pointer size of 8 bytes, which could cause - pointer values (and structures containing them) to be processed incorrectly. - Use the -32 option on Solaris; on Mac OS X use -arch i386. -

+ DTrace works on both 32 and 64 bit applications. + However, when tracing a 32-bit application on a 64-bit + processor it might be necessary to pass a "32 bit" option + to dtrace. Without this option the D + language might use a pointer size of 8 bytes, which could + cause pointer values (and structures containing them) to + be processed incorrectly. Use the -32 option + on Solaris; on Mac OS X use -arch i386. +

@@ -184,141 +192,159 @@
+

+ SystemTap looks up its static userspace markers in the + library name specified in the stap + script. A simple stap command to list + the probes of the default Berkeley DB installation is: +

- SystemTap looks up its static userspace markers in the library name - specified in the stap script. - A simple stap command to list the probes - of the default Berkeley DB installation is: -

+ stap -l 'process("/usr/local/BerkeleyDB.6.1/lib/libdb-6.1.so").mark("*")' + +

- - stap -l 'process("/usr/local/BerkeleyDB.5.3/lib/libdb-5.3.so").mark("*")' - -

-

- Berkeley DB supports SystemTap version 1.1 or later. Building with - userspace marker support requires sys/sdt.h, - which is often available in the package systemtap-sdt-devel. - Running stap with userspace markers requires that the - kernel have "utrace" support; see - http://sourceware.org/systemtap/wiki/utrace for more information. -

-

- SystemTap needs elevated privileges in order to run. You can avoid running as - root by adding the users who need to run stap - to the group stapdev. -

+ Berkeley DB supports SystemTap version 1.1 or later. + Building with userspace marker support requires + sys/sdt.h, which is often + available in the package + systemtap-sdt-devel. Running + stap with userspace markers + requires that the kernel have "utrace" support; see http://sourceware.org/systemtap/wiki/utrace + for more information. +

+

+ SystemTap needs elevated privileges in order to run. + You can avoid running as root by adding the users who need + to run stap to the group stapdev. +

-

Example Scripts

+

Example + Scripts

-

- Berkeley DB includes several example scripts, in both DTrace and SystemTap versions. - The DTrace examples end with a .d suffix and are located in - util/dtrace. The SystemTap examples have a - .stp suffix and can found be in - util/systemtap. The Berkeley DB shared library name, - including any necessary path, - is expected as the first parameter to the SystemTap examples. -

+

+ Berkeley DB includes several example scripts, in both + DTrace and SystemTap versions. The DTrace examples end + with a .d suffix and are located in + util/dtrace. The SystemTap + examples have a .stp suffix and can + found be in util/systemtap. The + Berkeley DB shared library name, including any necessary + path, is expected as the first parameter to the SystemTap + examples. +

apicalls
- This script graphs the count of the main API calls. The result - is grouped by thread of the target process. -
+ This script graphs the count of the + main API calls. The result is grouped by + thread of the target process. +
apitimes
- This script graphs the time spent in the main API calls, - grouped by thread. -
+ This script graphs the time spent in + the main API calls, grouped by thread. +
apitrace
- This script displays the entry to and return from each of the - main API calls. -
+ This script displays the entry to and + return from each of the main API calls. +
cache
- This script displays overall and per-file buffer cache statistics - every N (default: 1) seconds for - M (default: 60) intervals. - It prints the number of cache hits, misses, and evictions for - each file with any activity during the interval. -
+ This script displays overall and + per-file buffer cache statistics every + N (default: 1) + seconds for M (default: + 60) intervals. It prints the number of cache + hits, misses, and evictions for each file with + any activity during the interval. +
dbdefs
-
- This contains DTrace-compatible declarations of Berkeley DB - data structures returned from probe points. - There is no Linux equivalent; SystemTap can obtain type - information directly from the debugging symbols compiled - into the libdb*-5.3.so shared library. -
+
+ This contains DTrace-compatible + declarations of Berkeley DB data structures + returned from probe points. There is no Linux + equivalent; SystemTap can obtain type + information directly from the debugging + symbols compiled into the + libdb*-6.1.so shared library. +
locktimes
-
- This script graphs the time spent waiting for DB page locks. - The result times in nanoseconds are grouped by filename, - pgno, and lock_mode. The optional integer maxcount parameter - directs the script to exit once that many page lock waits - have been measured. -
+
+ This script graphs the time spent + waiting for DB page locks. The result times in + nanoseconds are grouped by filename, pgno, and + lock_mode. The optional integer maxcount + parameter directs the script to exit once that + many page lock waits have been measured. +
locktimesid
- This is similar to the locktimes script above, except that it displays - the 20 byte file identifier rather than the file name. This can be - useful when there are several environments involved, or when database - files are recreated during the monitoring period. -
+ This is similar to the locktimes script + above, except that it displays the 20 byte + file identifier rather than the file name. + This can be useful when there are several + environments involved, or when database files + are recreated during the monitoring period. +
mutex
-
- This script measures mutex wait periods, summarizing the results two ways. -
  • - The first grouping is by mutex, mode (exclusive or shared), - and thread id. -
  • - The second grouping is by the mutex category and - mode (exclusive or shared). - The mutex categories are the MTX_XXX definitions in - dbinc/mutex.h. -
+
+ This script measures mutex wait + periods, summarizing the results two ways. +
  • + The first grouping is by mutex, + mode (exclusive or shared), and thread + id. +
  • + The second grouping is by the + mutex category and mode (exclusive or + shared). The mutex categories are the + MTX_XXX definitions in + dbinc/mutex.h. +
showerror
- This script displays the application stack when the basic error - routines are called. It provides additional information about - an error, beyond the string sent to the diagnostic output. -
+ This script displays the application + stack when the basic error routines are + called. It provides additional information + about an error, beyond the string sent to the + diagnostic output. +

-

-

- These examples are designed to trace a single process. They run until - interrupted, or the monitored process exits, or the limit as given - in an optional 'maximum count' argument has been reached. -

+

+

+ These examples are designed to trace a single process. + They run until interrupted, or the monitored process + exits, or the limit as given in an optional 'maximum + count' argument has been reached. +

@@ -329,622 +355,613 @@

- The events are described below as if they were functions with ANSI C-style - signatures. The values each event provides to DTrace or SystemTap are - the arguments to the functions. -

-

+ The events are described below as if they were + functions with ANSI C-style signatures. The values each + event provides to DTrace or SystemTap are the arguments to + the functions. +

+

+ + +

- -alloc - + alloc
-

-The alloc class covers the allocation of "on disk" database pages. -

+

+ The alloc class covers the allocation of "on disk" + database pages. +

- alloc-new (char *file, char *db, unsigned pgno, unsigned type, - struct _db_page *pg, int ret); - + alloc-new (char *file, char *db, unsigned + pgno, unsigned type, struct _db_page *pg, int + ret);
-An attempt to allocate a database page of type 'type' for database 'db' -returned 'ret'. If the allocation succeeded then ret is 0, pgno is the -location of the new page, and pg is the address of the new page. -Details of the page can be extracted from the pg pointer. -
+ An attempt to allocate a database page + of type 'type' for database 'db' returned + 'ret'. If the allocation succeeded then ret is + 0, pgno is the location of the new page, and + pg is the address of the new page. Details of + the page can be extracted from the pg pointer. +
- -alloc-free (char *file, char *db, unsigned pgno, unsigned ret); - + alloc-free (char *file, char *db, unsigned + pgno, unsigned ret);
-
-An attempt to free the page 'pgno' of 'db' returned 'ret'. -When successful the page is returned to the free list -or the file is truncated. -
+
+ An attempt to free the page 'pgno' of + 'db' returned 'ret'. When successful the page + is returned to the free list or the file is + truncated. +
- alloc-btree_split (char *file, char *db, unsigned pgno, unsigned parent, - unsigned level); - + alloc-btree_split (char *file, char *db, + unsigned pgno, unsigned parent, unsigned + level);
-A btree split of pgno in db is being attempted. The parent page number -and the level in the btree are also provided. -
+ A btree split of pgno in db is being + attempted. The parent page number and the + level in the btree are also provided. +
- -db - + db
-

-These DB API calls provide the name of the file and database being accessed. -In-memory databases will have a NULL (0) file name address. The db name will -be null unless subdatabases are in use. -

+

+ These DB API calls provide the name of the file and + database being accessed. In-memory databases will have + a NULL (0) file name address. The db name will be null + unless subdatabases are in use. +

- -db-open (char *file, char *db, unsigned flags, uint8_t *fileid); - + db-open (char *file, char *db, unsigned + flags, uint8_t *fileid);
-The database or file name was opened. The 20 byte unique fileid can be -used to keep track of databases as they are created and destroyed. -
+ The database or file name was opened. + The 20 byte unique fileid can be used to keep + track of databases as they are created and + destroyed. +
- -db-close (char *file, char *db, unsigned flags, uint8_t *fileid); - + db-close (char *file, char *db, unsigned + flags, uint8_t *fileid);
-
-The database or file name was closed. -
+
+ The database or file name was closed. +
- db-cursor (char *file, char *db, unsigned txnid, unsigned flags, - uint8_t *fileid); - + db-cursor (char *file, char *db, unsigned + txnid, unsigned flags, uint8_t *fileid);
-
-An attempt is being made to open a cursor on the database or file. -
+
+ An attempt is being made to open a + cursor on the database or file. +
- db-get (char *file, char *db, unsigned txnid, DBT *key, DBT *data, - unsigned flags); - + db-get (char *file, char *db, unsigned + txnid, DBT *key, DBT *data, unsigned flags);
-
-An attempt is being made to get data from a db. -
+
+ An attempt is being made to get data + from a db. +
- db-put (char *file, char *db, unsigned txnid, DBT *key, DBT *data, - unsigned flags); - + db-put (char *file, char *db, unsigned + txnid, DBT *key, DBT *data, unsigned flags);
-An attempt is being made to put data to a db. -
+ An attempt is being made to put data to + a db. +
- -db-del (char *file, char *db, unsigned txnid, DBT *key, unsigned flags); - + db-del (char *file, char *db, unsigned + txnid, DBT *key, unsigned flags);
-An attempt is being made to delete data from a db. -
+ An attempt is being made to delete data + from a db. +
- -lock - + lock
-

-The lock class monitors the transactional consistency locks: page, record, -and database. It also monitors the non-transactional file handle locks. -

+

+ The lock class monitors the transactional + consistency locks: page, record, and database. It also + monitors the non-transactional file handle locks. +

- -lock-suspend (DBT *lock, db_lockmode_t lock_mode); - + lock-suspend (DBT *lock, db_lockmode_t + lock_mode);
-The thread is about to suspend itself because another locker already has -a conflicting lock on object 'lock'. The lock DBT's data points to -a __db_ilock structure, except for the atypical program which uses -application specific locking. -
+ The thread is about to suspend itself + because another locker already has a + conflicting lock on object 'lock'. The lock + DBT's data points to a __db_ilock structure, + except for the atypical program which uses + application specific locking. +
- -lock-resume (DBT *lock, db_lockmode_t lock_mode); - + lock-resume (DBT *lock, db_lockmode_t + lock_mode);
-
-The thread is awakening from a suspend. -
+
+ The thread is awakening from a suspend. +
- -lock-put (struct __sh_dbt *lock, unsigned flags); - + lock-put (struct __sh_dbt *lock, unsigned + flags);
-
-The lock is being freed. -
+
+ The lock is being freed. +
- -lock-put_reduce_count (struct __sh_dbt *lock, unsigned flags); - + lock-put_reduce_count (struct __sh_dbt + *lock, unsigned flags);
-
-The lock would have been freed except that its refcount was greater -than 1. -
+
+ The lock would have been freed except + that its refcount was greater than 1. +
-

-These lock counters are included by --enable-perfmon-statistics. -

+

+ These lock counters are included by + --enable-perfmon-statistics. +

- lock-deadlock (unsigned st_ndeadlocks, unsigned locker_id, - struct __sh_dbt *lock_obj); - + lock-deadlock (unsigned st_ndeadlocks, + unsigned locker_id, struct __sh_dbt + *lock_obj);
-
-The locker_id's lock request in lock_obj is about to be aborted in -order to resolve a deadlock. The lock region's st_ndeadlocks has -been incremented. -
+
+ The locker_id's lock request in + lock_obj is about to be aborted in order to + resolve a deadlock. The lock region's + st_ndeadlocks has been incremented. +
- -lock-nowait_notgranted (unsigned count, DBT *lock, unsigned locker_id); - + lock-nowait_notgranted (unsigned count, DBT + *lock, unsigned locker_id);
-A DB_LOCK_NOWAIT lock request by locker_id would have had to wait. -The lock regions's st_lock_nowait has been incremented and -the request returns DB_LOCK_NOTGRANTED. -
+ A DB_LOCK_NOWAIT lock request by + locker_id would have had to wait. The lock + regions's st_lock_nowait has been incremented + and the request returns DB_LOCK_NOTGRANTED. +
- -lock-steal (unsigned st_locksteals, unsigned from, unsigned to); - + lock-steal (unsigned st_locksteals, + unsigned from, unsigned to);
-A lock is being stolen from one partition for another one. -The 'from' lock partition's st_locksteals has been incremented. -
+ A lock is being stolen from one + partition for another one. The 'from' lock + partition's st_locksteals has been + incremented. +
- -lock-object_steal (unsigned st_objectsteals, unsigned from, unsigned to); - + lock-object_steal (unsigned + st_objectsteals, unsigned from, unsigned to);
-A lock object is being stolen from one partition for another one. -The 'from' lock partition's st_objectsteals has been incremented. -
+ A lock object is being stolen from one + partition for another one. The 'from' lock + partition's st_objectsteals has been + incremented. +
- -lock-locktimeout (unsigned st_nlocktimeouts, const DBT *lock); - + lock-locktimeout (unsigned + st_nlocktimeouts, const DBT *lock);
-A lock wait expired due to the lock request timeout. -
+ A lock wait expired due to the lock + request timeout. +
- -lock-txntimeout (unsigned st_ntxntimeouts, const DBT *lock); - + lock-txntimeout (unsigned st_ntxntimeouts, + const DBT *lock);
-A lock wait expired due to the transaction's timeout. -
+ A lock wait expired due to the + transaction's timeout. +
- -lock-nlockers (unsigned active, unsigned locker_id); - + lock-nlockers (unsigned active, unsigned + locker_id);
-
-The allocation or deallocation of the locker id changed the number -of active locker identifiers. -
+
The allocation or deallocation of the + locker id changed the number of active locker + identifiers.
- -lock-maxnlockers (unsigned new_max_active, unsigned locker_id); - + lock-maxnlockers (unsigned new_max_active, + unsigned locker_id);
-The allocation of the locker id set a new maximum -number of active locker identifiers. -
+ The allocation of the locker id set a + new maximum number of active locker + identifiers. +
- -mpool - + mpool

-The mpool class monitors the allocation and management of memory, -including the cache. -

+ The mpool class monitors the allocation and + management of memory, including the cache. +

- -mpool-read (char *file, unsigned pgno, struct __bh *buf); - + mpool-read (char *file, unsigned pgno, + struct __bh *buf);
-Read a page from file into buf. -
+ Read a page from file into buf. +
- -mpool-write (char *file, unsigned pgno, struct __bh *buf); - + mpool-write (char *file, unsigned pgno, + struct __bh *buf);
-Write a page from buf to file. -
+ Write a page from buf to file. +
- -mpool-env_alloc (unsigned size, unsigned region_id, unsigned reg_type); - + mpool-env_alloc (unsigned size, unsigned + region_id, unsigned reg_type);
-
-This is an attempt to allocate size bytes from region_id. -The reg_type is one of the reg_type_t enum values. -
+
+ This is an attempt to allocate size + bytes from region_id. The reg_type is one of + the reg_type_t enum values. +
- -mpool-evict (char *file, unsigned pgno, struct __bh *buf); - + mpool-evict (char *file, unsigned pgno, + struct __bh *buf);
-The page is about to be removed from the cache. -
+ The page is about to be removed from + the cache. +
- mpool-alloc_wrap (unsigned alloc_len, int region_id, int wrap_count, - int put_counter); - + mpool-alloc_wrap (unsigned alloc_len, int + region_id, int wrap_count, int put_counter);
-The memory allocator has incremented wrap_count after searching through -the entire region without being able to fulfill the request for -alloc_len bytes. As wrap_count increases the library makes more effort -to allocate space. -
+ The memory allocator has incremented + wrap_count after searching through the entire + region without being able to fulfill the + request for alloc_len bytes. As wrap_count + increases the library makes more effort to + allocate space. + -

-These mpool counters are included by --enable-perfmon-statistics. -

+

+ These mpool counters are included by + --enable-perfmon-statistics. +

- -mpool-clean_eviction (unsigned st_ro_evict, unsigned region_id); - + mpool-clean_eviction (unsigned st_ro_evict, + unsigned region_id);
-
-The eviction of a clean page from a cache incremented st_ro_evict. -
+
+ The eviction of a clean page from a + cache incremented st_ro_evict. +
- -mpool-dirty_eviction (unsigned st_rw_evict, unsigned region_id); - + mpool-dirty_eviction (unsigned st_rw_evict, + unsigned region_id);
-
-The eviction of a dirty page from a cache incremented st_rw_evict. -The page has already been written out. -
+
+ The eviction of a dirty page from a + cache incremented st_rw_evict. The page has + already been written out. +
- -mpool-fail (unsigned failure_count, unsigned alloc_len, unsigned region_id); - + mpool-fail (unsigned failure_count, + unsigned alloc_len, unsigned region_id);
-An attempt to allocate memory from region_id failed. -
+ An attempt to allocate memory from + region_id failed. +
- -mpool-hash_search (unsigned st_hash_searches, char *file, unsigned pgno); - + mpool-hash_search (unsigned + st_hash_searches, char *file, unsigned pgno);
-A search for pgno of file incremented st_hash_searches. -
+ A search for pgno of file incremented + st_hash_searches.
- -mpool-hash_examined (unsigned st_hash_examined, char *file, unsigned pgno); - + mpool-hash_examined (unsigned + st_hash_examined, char *file, unsigned pgno);
-A search for pgno of file increased st_hash_examined by the number -of hash buckets examined. -
+ A search for pgno of file increased + st_hash_examined by the number of hash buckets + examined. +
- -mpool-hash_longest (unsigned st_hash_longest, char *file, unsigned pgno); - + mpool-hash_longest (unsigned + st_hash_longest, char *file, unsigned pgno);
-A search for pgno of file set a new maximum st_hash_longest value. -
+ A search for pgno of file set a new + maximum st_hash_longest value. +
- -mpool-map (unsigned st_map, char *file, unsigned pgno); - + mpool-map (unsigned st_map, char *file, + unsigned pgno);
-
-A file's st_map count was incremented after a page was mapped into -memory. The mapping might have caused disk I/O. -
+
+ A file's st_map count was incremented + after a page was mapped into memory. The + mapping might have caused disk I/O. +
- -mpool-hit (unsigned st_cache_hit, char *file, unsigned pgno); - + mpool-hit (unsigned st_cache_hit, char + *file, unsigned pgno);
-
-The hit count was incremented because pgno from file was found -in the cache. -
+
+ The hit count was incremented because + pgno from file was found in the cache. +
- -mpool-miss (unsigned st_cache_miss, char *file, unsigned pgno); - + mpool-miss (unsigned st_cache_miss, char + *file, unsigned pgno);
-The miss count was incremented because pgno from file was -not already present in the cache. -
+ The miss count was incremented because + pgno from file was not already present in the + cache. +
- -mpool-page_create (unsigned st_page_create, char *file, unsigned pgno); - + mpool-page_create (unsigned st_page_create, + char *file, unsigned pgno);
-The st_page_create field was incremented because -the pgno of file was created in the cache. -
+ The st_page_create field was + incremented because the pgno of file was + created in the cache. +
- -mpool-page_in (unsigned st_page_in, char *file, unsigned pgno); - + mpool-page_in (unsigned st_page_in, char + *file, unsigned pgno);
-
-The st_page_in field was incremented because -the pgno from file was read into the cache. -
+
+ The st_page_in field was incremented + because the pgno from file was read into the + cache. +
- -mpool-page_out (unsigned st_page_out, char *file, unsigned pgno); - + mpool-page_out (unsigned st_page_out, char + *file, unsigned pgno);
-
-The st_page_out field was incremented because -the pgno from file was written out. -
+
+ The st_page_out field was incremented + because the pgno from file was written out. +
- -mutex - + mutex
-

-The mutex category monitors includes shared latches. The alloc_id value -is one of the MTX_XXX definitions from dbinc/mutex.h -

+

+ The mutex category monitors includes shared + latches. The alloc_id value is one of the MTX_XXX + definitions from dbinc/mutex.h +

- mutex-suspend (unsigned mutex, unsigned excl, unsigned alloc_id, - struct __db_mutex_t *mutexp); - + mutex-suspend (unsigned mutex, unsigned + excl, unsigned alloc_id, struct __db_mutex_t + *mutexp);
-This thread is about to suspend itself because a thread has the -mutex or shared latch locked in a mode which conflicts with the -this request. -
+ This thread is about to suspend itself + because a thread has the mutex or shared latch + locked in a mode which conflicts with the this + request. +
- mutex-resume (unsigned mutex, unsigned excl, unsigned alloc_id, - struct __db_mutex_t *mutexp); - + mutex-resume (unsigned mutex, unsigned excl, + unsigned alloc_id, struct __db_mutex_t + *mutexp);
-
-The thread is returning from a suspend and will attempt to obtain -the mutex or shared latch again. It might need to suspend again. -
+
+ The thread is returning from a suspend + and will attempt to obtain the mutex or shared + latch again. It might need to suspend again. +
-

-These mutex counters are included by --enable-perfmon-statistics. -

+

+ These mutex counters are included by + --enable-perfmon-statistics. +

- -mutex-set_nowait (unsigned mutex_set_nowait, unsigned mutex); - + mutex-set_nowait (unsigned + mutex_set_nowait, unsigned mutex);
-
-Increment the count of times that the mutex was free when trying -to lock it. -
+
+ Increment the count of times that the + mutex was free when trying to lock it. +
- -mutex-set_wait (unsigned mutex_set_wait, unsigned mutex); - + mutex-set_wait (unsigned mutex_set_wait, + unsigned mutex);
-
-Increment the count of times that the mutex was busy when trying -to lock it. -
+
+ Increment the count of times that the + mutex was busy when trying to lock it. +
- -mutex-set_rd_nowait (unsigned mutex_set_rd_nowait, unsigned mutex); - + mutex-set_rd_nowait (unsigned + mutex_set_rd_nowait, unsigned mutex);
-
-Increment the count of times that the shared latch was free -when trying to get a shared lock on it. -
+
+ Increment the count of times that the + shared latch was free when trying to get a + shared lock on it. +
- -mutex-set_rd_wait (unsigned mutex_set_rd_wait, unsigned mutex); - + mutex-set_rd_wait (unsigned + mutex_set_rd_wait, unsigned mutex);
-Increment the count of times that the shared latch was already -exclusively latched when trying to get a shared lock on it. -
+ Increment the count of times that the + shared latch was already exclusively latched + when trying to get a shared lock on it. +
- -mutex-hybrid_wait (unsigned hybrid_wait, unsigned mutex); - + mutex-hybrid_wait (unsigned hybrid_wait, + unsigned mutex);
-
-Increment the count of times that a hybrid mutex had to block -on its condition variable. n a busy system this might happen -several times before the corresponding hybrid_wakeup. -
+
+ Increment the count of times that a + hybrid mutex had to block on its condition + variable. n a busy system this might happen + several times before the corresponding + hybrid_wakeup. +
- -mutex-hybrid_wakeup (unsigned hybrid_wakeup, unsigned mutex); - + mutex-hybrid_wakeup (unsigned + hybrid_wakeup, unsigned mutex);
-Increment the count of times that a hybrid mutex finished -one or more waits for its condition variable. -
+ Increment the count of times that a + hybrid mutex finished one or more waits for + its condition variable. +
- -txn - + txn
-

-The txn category covers the basic transaction operations. -

+

+ The txn category covers the basic transaction + operations. +

- -txn-begin (unsigned txnid, unsigned flags); - + txn-begin (unsigned txnid, unsigned flags);
-
-A transaction was successfully begun. -
+
+ A transaction was successfully begun. +
- -txn-commit (unsigned txnid, unsigned flags); - + txn-commit (unsigned txnid, unsigned + flags);
-
-A transaction is starting to commit. -
+
+ A transaction is starting to commit. +
- -txn-prepare (unsigned txnid, uint8_t *gid); - + txn-prepare (unsigned txnid, uint8_t *gid);
-
-The transaction is starting to prepare, flushing the log -so that a future commit can be guaranteed to succeed. -The global identifier field is 128 bytes long. -
+
+ The transaction is starting to prepare, + flushing the log so that a future commit can + be guaranteed to succeed. The global + identifier field is 128 bytes long. +
- -txn-abort (unsigned txnid); - + txn-abort (unsigned txnid);
-The transaction is about to abort. -
+ The transaction is about to abort. +

-These txn counters are included by --enable-perfmon-statistics. -

+ These txn counters are included by + --enable-perfmon-statistics. +

- -txn-nbegins (unsigned st_nbegins, unsigned txnid); - + txn-nbegins (unsigned st_nbegins, unsigned + txnid);
-
-Beginning the transaction incremented st_nbegins. -
+
+ Beginning the transaction incremented + st_nbegins. +
- -txn-naborts (unsigned st_nbegins, unsigned txnid); - + txn-naborts (unsigned st_nbegins, unsigned + txnid);
-
-Aborting the transaction incremented st_naborts. -
+
+ Aborting the transaction incremented + st_naborts. +
- -txn-ncommits (unsigned st_ncommits, unsigned txnid); - + txn-ncommits (unsigned st_ncommits, + unsigned txnid);
-Committing the transaction incremented st_ncommits. -
+ Committing the transaction incremented + st_ncommits. +
- -txn-nactive (unsigned st_nactive, unsigned txnid); - + txn-nactive (unsigned st_nactive, unsigned + txnid);
-
-Beginning or ending the transaction updated the number of active -transactions. -
+
+ Beginning or ending the transaction + updated the number of active transactions. +
- -txn-maxnactive (unsigned st_maxnactive, unsigned txnid); - + txn-maxnactive (unsigned st_maxnactive, + unsigned txnid);
-
-The creation of the transaction set a new maximum number -of active transactions. -
+
+ The creation of the transaction set a + new maximum number of active transactions. +

- -

+