System snapshots may include an optional function-timing array of ctWRKSTT structures as described in the Function Timing section below.
/* system snapshot versions */
enum systemSnapshotVersion {
ctGSMS_VERSION_FILEOPS = 21, /* minimum snapshot version that includes
fileops fields */
ctGSMS_VERSION_CTREPFLSBG = 22, /* minimum snapshot version that includes
replication log flush by background thread */
ctGSMS_VERSION_COMPFLG5 = 23 /* minimum snapshot version that includes
5th compatibility flag */
};
#define ctGSMSvern ctGSMS_VERSION_COMPFLG5 /* ctGSMS (system snapshot) version # */
typedef struct ctgsms {
ULONG client_ver; /* client version of structure */
ULONG server_ver; /* server version of structure */
ULONG fixlen; /* length of fixed portion of snapshot */
ULONG varlen; /* length of variable region (if any) */
ULONG contents; /* bit map of var len contents */
ULONG logsets; /* number of multiple log sets */
LONG8 snapshottm; /* snapshot time stamp: seconds since 70 */
LONG8 sctdnd_red; /* delete node thread queue reads */
LONG8 sctdnd_wrt; /* delete node thread queue writes */
LONG8 sctdnd_rwt; /* delete node thread queue rewrites */
LONG8 sctdnd_abn; /* delete node thread queue abandons */
LONG8 sctdnd_rmv; /* delete node thread queue removals (no longer used) */
LONG8 sctdnd_non; /* delete node thread queue no action */
LONG8 sctloktry; /* count of lock attempts */
LONG8 sctlokhlk; /* subcount of hdr lock attempts */
LONG8 sctlokdny; /* count of locks denied */
LONG8 sctlokblk; /* count of locks blocked */
LONG8 sctlokhbk; /* subcount of header blocks */
LONG8 sctlokdlk; /* count of dead locks */
LONG8 sctlokfre; /* count of locks freed */
LONG8 sctlokrel; /* count of blocks released */
LONG8 sctlokcur; /* current count of locks held */
LONG8 sctblkcur; /* current count of blocked requests */
LONG8 scttrntim; /* cumulative transaction time^ */
LONG8 scttrncnt; /* cumulative transaction count */
LONG8 scttrnmax; /* maximum elapsed tran time^ */
ULONG sct_compflg3; /* 3rd compatibility word */
LONG sctrqtmonint; /* request time monitor interval */
LONG8 scttot_call; /* system-wide c-tree calls */
LONG8 scttot_recv; /* system-wide time waiting for request^ */
LONG8 scttot_work; /* system-wide time performing requests^ */
LONG8 scttot_send; /* system-wide time to send request^ */
LONG8 sctmemhgh; /* system memory highwater mark */
LONG8 sctmemsum; /* current aggregate sum */
#ifdef ctFeatATOMICop64
volatile
AULONG8 sct_dbrqs; /* data buffer requests */
volatile
AULONG8 sct_dbhit; /* data buffer hits */
#else
LONG8 sct_dbrqs; /* data buffer requests */
LONG8 sct_dbhit; /* data buffer hits */
#endif
#ifdef ctFeatATOMICop64
volatile
AULONG8 sct_ibrqs; /* index buffer requests */
volatile
AULONG8 sct_ibhit; /* index buffer hits */
#else
LONG8 sct_ibrqs; /* index buffer requests */
LONG8 sct_ibhit; /* index buffer hits */
#endif
LONG8 sct_rdops; /* number of read operations */
LONG8 sct_rdbyt; /* bytes read */
LONG8 sct_wrops; /* number of write operations */
LONG8 sct_wrbyt; /* bytes written */
LONG8 sct_rcops; /* number of comm read operations */
LONG8 sct_rcbyt; /* comm bytes read */
LONG8 sct_wcops; /* number of comm write operations */
LONG8 sct_wcbyt; /* comm bytes written */
LONG8 sctwlgops; /* number of log write operations */
LONG8 sctwlgbyt; /* bytes written to log file */
LONG8 sctrlgops; /* number of log read operations */
LONG8 sctrlgbyt; /* bytes read from log file */
LONG8 sctxlgops; /* number of log extension operations */
LONG8 sctxlgbyt; /* log file extension bytes */
LONG8 sct_trbeg; /* # transaction begins */
LONG8 sct_trend; /* # transaction ends */
LONG8 sct_trabt; /* # transaction aborts */
LONG8 sct_trsav; /* # transaction savepoints */
LONG8 sct_trrst; /* # transaction restores */
LONG8 sct_trfls; /* # transaction log flush writes */
LONG8 sctsync_dosfls; /* DOSFLUSH sync calls */
LONG8 sctsync_logfil; /* transaction log sync calls */
LONG8 sctsync_regfil; /* c-tree file sync calls */
LONG8 scthrtimbas; /* high res timer ticks per sec^ */
LONG8 sctchkpnttim; /* cumulative checkpoint time^ */
LONG8 sctchkpntsiz; /* cumulative checkpoint size */
LONG8 sctchkpnt[ctCHKPdetail];
/* intermediate checkpoint times^ */
LONG8 sctcmtdlytry; /* cmtdly eligible count */
LONG8 sctcmtdlycnt; /* cmtdly concurrent trans exist */
LONG8 sctcmtdlycoh; /* cmtdly cohorts exist (success) */
LONG8 sctcmtcohmax; /* cmtdly max cohort count */
LONG8 sctcmtdlyclr; /* cmtdly cohort appeared (success) */
LONG8 sctcmtlopclr; /* cmtdly appeared loop count */
LONG8 sctcmtdlynot; /* cmtdly direct flush count */
LONG8 sctcmtlopfls; /* cmtdly log flush loop count */
LONG8 sctcmtdlydfr; /* cmtdly loop defer count */
ULONG sctcmtlopmax; /* max loop defer count */
ULONG sctcmtmaxadp; /* max adaptive LFW loop counter */
LONG8 sctcmtavgadp; /* avg adaptive LFW loop counter */
LONG8 sctcmtlopfls2; /* cmtdly log flush2 loop count */
LONG8 stimchk[8]; /* diagnostic time ct_udefer check */
LONG8 selapwrktim; /* elapsed time func timings turned on */
LONG8 selapsrvtim; /* elapsed server operation time */
LONG8 sctcmtblktim; /* accum commit delay block time (requested) */
LONG8 sctcmtclrtim; /* accum commit delay clear time (requested) */
LONG8 stimchktarget; /* ct_udefer expected result */
LONG8 stimchkconsec; /* time between consecutive hrt in usec */
LONG8 stimchkavg; /* avg time ofr hrtimer call in usec */
LONG8 sctcmtdlyfls; /* cmtdly log flushed anyway (success) */
LONG8 sctcmtfls; /* commit/abort tran log flush rqst */
LONG8 sctbegfls; /* begin tran log flush rqst */
LONG8 sctidxfls; /* LOGIDX tran log flush rqst */
LONG8 sctupdfls; /* file 1st upd tran log flush rqst */
LONG8 sctcmtavgdfr; /* accum commit delay block time (actual) */
LONG8 sctcmtmaxdfr; /* max commit delay block time */
LONG8 sctcmtdlyfls2; /* dmtdly log flushed anyway2 (success) */
LONG8 scttrnbox; /* width of cttrndet boxes^ */
LONG8 sctlogfls; /* log flush count */
LONG8 sctlogtim; /* log flush time */
#ifdef ctdbMEMSUM
LONG8 sctSQLmemsum; /* current aggregate sum for SQL */
LONG8 sctDBmemsum; /* current aggregate sum for CTDB-STUB */
#else
LONG8 available81[2]; /* available for future use */
#endif
LONG8 sctredcmtlpc; /* RED_CMTLOK loop count */
LONG8 sctrepfls; /* replication log flush rqst */
LONG8 sctchkbufwrt; /* checkpoint index buffer writes */
LONG8 sctchkchewrt; /* checkpoint data cache writes */
ULONG scttrndet[ctTRNTdetail];
/* tran time detail */
LONG sctactfil; /* # open physical files */
LONG scttotfil; /* # open logical files */
LONG scttotblk; /* # c-tree FCBs in use */
LONG sctactfilx; /* max physical files opened */
LONG scttotfilx; /* max logical files opened */
LONG scttotblkx; /* max c-tree FCBs in use */
LONG sctnusers; /* number of users */
LONG sctnusersx; /* max number of users */
#ifdef ctFeatATOMICop64
volatile
AULONG sctloknm; /* net locks over unlocks */
volatile
AULONG sctloknmx; /* max net locks over unlocks */
#else
LONG sctloknm; /* net locks over unlocks */
LONG sctloknmx; /* max net locks over unlocks */
#endif
ULONG sct_mxbuf; /* number of index buffer pages */
ULONG sctbufcnt; /* index buffer pages in use */
ULONG sctbufhgh; /* max index buffers in use */
ULONG sct_dxbuf; /* available data cache pages */
ULONG sctdatcnt; /* data cache pages in use */
ULONG sctdathgh; /* max data cache pages in use */
ULONG scmtblkseq; /* not flow through cmtdly block */
ULONG sct_compflg; /* compatibility flag */
ULONG sct_compflg2; /* 2nd compatibility word */
ULONG sct_diagflg; /* diagnostic flag */
ULONG sct_diagflg2; /* 2nd diagnostic flag */
LONG sct_cmtdly; /* commit delay */
LONG sct_chkdly; /* checkpoint tranac_cnt delay */
ULONG sct_cmtscl; /* cmtdlytim block to clear ratio */
ULONG sct_cmtbas; /* cmtdlytim cohort size measure */
ULONG stimchkusec; /* ct_udefer test interval in usec's */
ULONG stimchkiter; /* ct_udefer test iterations */
ULONG sct_udefer_thld;/* ct_udefer usec threshold */
ULONG sct_udefer_64yd;/* sleep duration for 64 yields (usec) */
ULONG sctITIMretry; /* ITIM_ERR auto retry count */
ULONG sctTPNDretry; /* TPND_ERR auto retry count */
ULONG sctITIMlimit; /* ITIM_ERR auto retry limit */
ULONG sctITIMfailed; /* ITIM_ERR auto retry failed */
ULONG sctredcmtdfr; /* RED_CMTLOK loop defer time millisecs */
ULONG sctredcmtlpr; /* RED_CMTLOK loopers */
ULONG sctITIMdefer; /* ITIM_ERR auto retry defer */
LONG8 sctismaddcnt; /* ISAM record add count */
LONG8 sctismdelcnt; /* ISAM record delete count */
ULONG sct_dxspllmt; /* avail data file special cache pages */
ULONG sct_dxsplcnt; /* actual data file special cache pages */
ULONG sct_dxsplhgh; /* maximum data file special cache pages */
ULONG sctcpcnt; /* check point count */
LONG sct_numvfil; /* number of virtual files open */
LONG sct_avlfil; /* # available file control blocks */
#ifdef ctFeatATOMICop
volatile
AULONG sctactusr; /* number of threads active in foregrnd */
#else
LONG sctactusr; /* number of threads active in foregrnd */
#endif
LONG sct_nutcnt; /* # of index buffers on upd list (tran) */
LONG sct_nupcnt; /* # of index buffers on upd list */
LONG sct_dutcnt; /* # of data caches on upd list (tran) */
LONG sct_dupcnt; /* # of data caches on upd list */
LONG sctwatshtdwn; /* wait on shut down in seconds */
LONG8 sct_wrtcmp; /* calls to ctwrtlog */
LONG8 sct_no_cmp; /* ctwrtlog below compression threshold */
LONG8 sct_tp_cmp; /* trantyp not compressed (DIFIMAGE) */
LONG8 sct_rj_cmp; /* ctwrtlg compression not effective */
LONG8 sct_bytcmp; /* total bytes saved by log compression */
LONG sctlogcmpfloor; /* no log compression below this size */
LONG sctlogcmpfactor;/* out-size must not > this % of in-size */
COUNT sct_mxfil; /* total number of c-tree FCBs */
COUNT sct_ndsec; /* # of sectors per node */
UTEXT sflvr; /* server byte order */
UTEXT salgn; /* server alignment */
UTEXT spntr; /* server pointer size */
UTEXT maxdhashcoll; /* max data cache hash collisions */
LONG8 sctlokkil; /* count of killed locks */
LONG8 sctismupdcnt; /* ISAM record update count */
LONG8 sctismredcnt; /* ISAM record read count */
LONG8 sctloktim; /* cumulative lock wait time^ */
LONG8 sctlokcnt; /* cumulative lock wait count */
LONG8 sctlokmax; /* maximum elapsed lock wait time^ */
LONG8 sctlokbox; /* width of detail boxes^ */
ULONG sctlokdet[ctLOCKdetail];
/* lock block time details */
LONG8 sctxlktim; /* cumulative idx lock wait time^ */
LONG8 sctxlkcnt; /* cumulative idx lock wait count */
LONG8 sctxlkmax; /* maximum elapsed idx lock wait time^ */
LONG8 sctxlkbox; /* width of detail boxes^ */
ULONG sctxlkdet[ctXLOKdetail];
/* idx lock block time details */
TEXT description[128];/* optional text description */
#ifdef ctFeatATOMICop
volatile
AULONG sctcurusr; /* threads in use total (ctaddwork) */
volatile
AULONG sctmaxusr; /* max threads in use (ctaddwork) */
#else
LONG sctcurusr; /* threads in use total (ctaddwork) */
LONG sctmaxusr; /* max threads in use (ctaddwork) */
#endif
ULONG scti_svvr; /* server internal version number */
ULONG sctioblkretry; /* I/O error auto retry count */
ULONG sct_compflg4; /* 4th compatibility word */
ULONG sct_dxscan; /* avail scan cache pages */
ULONG sct_dxscancnt; /* actual scan cache pages */
ULONG sct_dxscanhgh; /* maximum scan cache pages */
ULONG sct_hbTbuf; /* index hash bin Threshold */
ULONG sct_hbRbuf; /* index hash bin Reset limit */
ULONG sct_hbTcac; /* data hash bin Threshold */
ULONG sct_hbRcac; /* data hash bin Reset limit */
ULONG sct_diagflg3; /* 3rd diagnostic flag */
ULONG sctmldmsec; /* DELAYED_DURABILITY (in msecs) */
LONG sarplogint; /* auto restore point log interval */
LONG sarptimout; /* auto restore point tran timeout */
#ifdef ctFeatATOMICop64
volatile
AULONG8 sctdatflschk; /* data cache tran log checks */
#else
LONG8 sctdatflschk; /* data cache tran log checks */
#endif
LONG8 sctdatfls; /* data cache tran log flush rqst */
LONG8 sctmldfls; /* MAX LOG DEFER log flush rqst */
LONG sarpoptions; /* auto restore point options */
LONG sarplastlog; /* auto restore point last log written */
LONG8 sphyopncnt; /* number of physical file opens */
LONG8 sphyclscnt; /* number of physical file closes */
BGFLSS bgflss[2]; /* background flush state vars */
LONG8 slogopncnt; /* number of logical file opens */
LONG8 slogclscnt; /* number of logical file closes */
LONG8 sfilcrecnt; /* number of file creates */
LONG8 sfilrencnt; /* number of file renames */
LONG8 sfildelcnt; /* number of file deletes */
LONG8 sctrepflsbg; /* replication log flush by background thread */
LONG8 savail83[2]; /* available for use */
LONG sct_mxfil32; /* total number of c-tree FCBs */
ULONG sct_compflg5; /* 5th compatibility word */
LONG savail4[6]; /* available for use */
} ctGSMS, ctMEM * pctGSMS;
Be sure to update snapshot file parsing utility, ctsnpr, to a version that supports the correct SNAPSHOT.FCS file format.