Class Reference
IRIS for UNIX 2019.3
InterSystems: The power behind what matters   
Documentation  Search
  [%SYS] >  [SYS] >  [Stats] >  [WriteDaemon]
Private  Storage   

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

This class provides detailed system metrics captured for the Write Daemon(s). Each instance of InterSystems IRIS 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 !

Write Daemon metrics with instances for each slave daemon.


Parameters Properties Methods Queries Indices ForeignKeys Triggers
11 5 1


CurBlk CycleBlk CycleStart CycleTime Cycles
Index Phase TotBlk VolumeQ Wake

%AddToSaveSet %ClassIsLatestVersion %ClassName %ConstructClone
%DispatchClassMethod %DispatchGetModified %DispatchGetProperty %DispatchMethod
%DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty %Extends
%GetParameter %IsA %IsModified %New
%NormalizeObject %ObjectModified %OriginalNamespace %PackageName
%RemoveFromSaveSet %SerializeObject %SetModified %ValidateObject
Sample SampleClose SampleExecute SampleFetch
XMLDTD XMLExport XMLExportToStream XMLExportToString
XMLNew XMLSchema XMLSchemaNamespace XMLSchemaType


• property CurBlk as %Integer;
The number of blocks written by current/latest cycle.
• property CycleBlk as %Integer;
The average number of blocks written per WD cycle.
• 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 CycleTime as %Integer;
The time (in milliseconds) it took for the last complete write cycle.
• property Cycles as %Integer;
The number of active cycles for this daemon.
• property Index as %Integer;
An index number to uniquely identify this daemon.
• 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 TotBlk as %Integer;
The cumulative number of blocks written by this daemon.
• property VolumeQ as %String;
The list of databases served by this daemon
• property Wake as %Boolean;
A flag indicating if this daemon is currently active.
• 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)


• 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

Copyright (c) 2019 by InterSystems Corporation. Cambridge, Massachusetts, U.S.A. All rights reserved. Confidential property of InterSystems Corporation.