Skip to main content


class SYS.Stats.WriteDaemon extends SYS.WSMon.wsResource

This class provides detailed system metrics captured for the Write Daemon(s). Each instance of Cache has a Write Daemon, and on some operating systems may also have Slave Write Daemons. Each instance of this class presents the data for one of these daemons, with the first instance being the master Write Daemon.

The current values for each class instance may be fetched using the Query 'Sample', and then the current value of each property can be accessed.

For example:
  s prop="Index,CurBlk,TotBlk,Cycles,CycleBlk,VolumeQ,Wake,CycleTime" ; list of properties
  s rset=##class(%ResultSet).%New("SYS.Stats.WriteDaemon:Sample")
  d rset.Execute()
  s len=$l(prop,",")
  ; list properties for all Write Daemons
  while rset.Next() {
  	f i=1:1:len w rset.Data($p(prop,",",i)) w:i<len ","
  	w !

Cache Write Daemon metrics with instances for each slave daemon.

Property Inventory

Method Inventory


property CurBlk as %Integer;
The number of blocks written by current/latest cycle.
Property methods: CurBlkDisplayToLogical(), CurBlkGet(), CurBlkIsValid(), CurBlkLogicalToDisplay(), CurBlkNormalize(), CurBlkSet(), CurBlkXSDToLogical()
property CycleBlk as %Integer;
The average number of blocks written per WD cycle.
Property methods: CycleBlkDisplayToLogical(), CycleBlkGet(), CycleBlkIsValid(), CycleBlkLogicalToDisplay(), CycleBlkNormalize(), CycleBlkSet(), CycleBlkXSDToLogical()
property CycleStart as %String;
The start time of the last complete write cycle. This is returned in the same format at $ZTIMESTAMP (UTC date/time)
Property methods: CycleStartDisplayToLogical(), CycleStartGet(), CycleStartIsValid(), CycleStartLogicalToDisplay(), CycleStartLogicalToOdbc(), CycleStartNormalize(), CycleStartSet()
property CycleTime as %Integer;
The time (in milliseconds) it took for the last complete write cycle.
Property methods: CycleTimeDisplayToLogical(), CycleTimeGet(), CycleTimeIsValid(), CycleTimeLogicalToDisplay(), CycleTimeNormalize(), CycleTimeSet(), CycleTimeXSDToLogical()
property Cycles as %Integer;
The number of active cycles for this daemon.
Property methods: CyclesDisplayToLogical(), CyclesGet(), CyclesIsValid(), CyclesLogicalToDisplay(), CyclesNormalize(), CyclesSet(), CyclesXSDToLogical()
property Index as %Integer;
An index number to uniquely identify this daemon.
Property methods: IndexDisplayToLogical(), IndexGet(), IndexIsValid(), IndexLogicalToDisplay(), IndexNormalize(), IndexSet(), IndexXSDToLogical()
property Phase as %Integer;
Current phase of the Write Daemon. Only valid for the master (#1).

This is an integer that represents the current phase of a processing cycle. The phases are:

0: Idle
1: Cycle initialization
2: Lock set, waiting for updaters
3: Forming block write list
4: Lock clear, waking updaters
5: Writing image journal
6: Image journal done, starting journal sync
7: Commiting WIJ and Journal
8: Database write phase
9: Commiting database writes to disk
10: Clearing WIJ
11: Cycle post processing
12: Cycle complete
Property methods: PhaseDisplayToLogical(), PhaseGet(), PhaseIsValid(), PhaseLogicalToDisplay(), PhaseNormalize(), PhaseSet(), PhaseXSDToLogical()
property TotBlk as %Integer;
The cumulative number of blocks written by this daemon.
Property methods: TotBlkDisplayToLogical(), TotBlkGet(), TotBlkIsValid(), TotBlkLogicalToDisplay(), TotBlkNormalize(), TotBlkSet(), TotBlkXSDToLogical()
property VolumeQ as %String;
The list of databases served by this daemon
Property methods: VolumeQDisplayToLogical(), VolumeQGet(), VolumeQIsValid(), VolumeQLogicalToDisplay(), VolumeQLogicalToOdbc(), VolumeQNormalize(), VolumeQSet()
property Wake as %Boolean;
A flag indicating if this daemon is currently active.
Property methods: WakeDisplayToLogical(), WakeGet(), WakeIsValid(), WakeLogicalToDisplay(), WakeLogicalToXSD(), WakeNormalize(), WakeSet(), WakeXSDToLogical()
property WakeStart as %String;
Time that the current write cycle started (returns "" if Wake = 0) This is returned in the same format at $ZTIMESTAMP (UTC date/time)
Property methods: WakeStartDisplayToLogical(), WakeStartGet(), WakeStartIsValid(), WakeStartLogicalToDisplay(), WakeStartLogicalToOdbc(), WakeStartNormalize(), WakeStartSet()


classmethod Sample(DaemonID As %Integer = 1) as SYS.Stats.WriteDaemon
Instantiate the class for an individual Write Daemon and fill in current values for all properties. 'DaemonID' is an integer from 1 to 'n' used to reference each daemon with 1 being the master. A number greater than 'n' returns the property 'Index' as zero.

Allows for XML output of a single WriteDaemon instance.
classmethod SampleClose(ByRef qHandle As %Binary) as %Status
classmethod SampleExecute(ByRef qHandle As %Binary) as %Status
classmethod SampleFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) as %Status


query Sample()
Selects Index As %Integer, CurBlk As %Integer, TotBlk As %Integer, Cycles As %Integer, CycleBlk As %Integer, VolumeQ As %String, Wake As %Boolean, CycleTime As %Integer, WakeStart As %String, CycleStart As %String, Phase As %Integer
Sample counters for all Buffer sizes

Inherited Members

Inherited Methods

FeedbackOpens in a new tab