Name: DB
Type: Server
Description: stores persistent data
Interface:
# Per-Message Statistics
AddMessageStats(server ID, client ID, size)
returns: message ID
ChangeMessageStats(message ID, status, processing time, ...)
# Management General
AddServerID(server ID)
GetServerIDs()
returns: list of server ID's
ValidServerID(server ID)
returns: true/false
AddClientID(client ID)
GetClientIDs()
returns: list of client ID's
ValidClientID(client ID)
returns: true/false
# Management of Statistics
GetMessageIDs()
returns: list of message ID's
GetMessageStats(message ID)
returns: message stats
AddClientStats(client ID, time period, message count, ...)
GetClientStatsIDs()
returns: list of client statistics ID's
GetClientStats(client stat ID)
returns: client statistics
GetClientStatsMatching(client ID, time period)
returns: client statistics for client ID and time period
AddServerStats(server ID, time period, message count, ...)
GetServerStatsIDs()
returns: list of server statistics ID's
GetServerStats(server stat ID)
returns: server statistics
GetServerStatsMatching(server ID, time period)
returns: server statistics for server ID and time period
State:
# Management (updated/changed through management interface periodically)
Client Table
ClientID [key]
Name
ClientStat Table
ClientStatID [key]
ClientID
TimePeriod
MessageCountProcessed
MessageCountDropped
MessageCountPending
MessageSizeTotal
MessageSizeAvg
MessageProcessingTimeTotal
MessageProcessingTimeAvg
MessageRatingTotal (?)
MessageRatingAvg (?)
Server Table
ServerID [key]
Name
ServerStat Table
ServerStatID [key]
ServerID
TimePeriod
MessageCountProcessed
MessageCountDropped
MessageCountPending
MessageSizeTotal
MessageSizeAvg
MessageProcessingTimeTotal
MessageProcessingTimeAvg
MessageRatingTotal (?)
MessageRatingAvg (?)
# Statistics
MessageStat Table
MessageID [key]
ServerID
ClientID
Timestamp
MessageStatus{Processed, Dropped, Pending}
MessageSize
MessageProcessingTime
MessageRating (?)
Uses:
None
Used By:
MailProcessor
ManagementClient
Exceptions:
System Errors
InvalidClientID
InvalidServerID
InvalidMessageID
InvalidStatID