Time: 2:30 p.m.
Gang reports on the progess made since the previous meeting.
The relevant information about what gets stored on the DIRAC accounting records comes from:
DIRAC/AccountingSystem/Client/Types/
For the info that each record includes you can find something like:
class Job( BaseAccountingType ):
def __init__( self ):
BaseAccountingType.__init__( self )
self.definitionKeyFields = [ ( 'User', 'VARCHAR(32)' ),
( 'UserGroup', 'VARCHAR(32)' ),
( 'JobGroup', "VARCHAR(64)" ),
( 'JobType', 'VARCHAR(32)' ),
( 'JobClass', 'VARCHAR(32)' ),
( 'ProcessingType', 'VARCHAR(32)' ),
( 'Site', 'VARCHAR(32)' ),
( 'FinalMajorStatus', 'VARCHAR(32)' ),
( 'FinalMinorStatus', 'VARCHAR(64)' )
]
self.definitionAccountingFields = [ ( 'CPUTime', "INT UNSIGNED" ),
( 'NormCPUTime', "INT UNSIGNED" ),
( 'ExecTime', "INT UNSIGNED" ),
( 'InputDataSize', 'BIGINT UNSIGNED' ),
( 'OutputDataSize', 'BIGINT UNSIGNED' ),
( 'InputDataFiles', 'INT UNSIGNED' ),
( 'OutputDataFiles', 'INT UNSIGNED' ),
( 'DiskSpace', 'BIGINT UNSIGNED' ),
( 'InputSandBoxSize', 'BIGINT UNSIGNED' ),
( 'OutputSandBoxSize', 'BIGINT UNSIGNED' ),
( 'ProcessedEvents', 'INT UNSIGNED' )
]
The "definitionKeyFields" are those that allow to classify the record and "definitionAccountingFields"
are those that are "accounted" for in the record, in this case for Jobs. All records of any type provide
also a startTime and endTime.
In the MySQL schema, each "Key" field is accompanied by a auxiliary table that assignes a numeric
key to each possible value.