|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.hd.d.pg2k.svrCore.vars.SystemVariables
public final class SystemVariables
Immutable enumeration of distributed system variables. To avoid too much recursive definition, variable names (etc) should be defined here and used by the setters, etc.
| Field Summary | |
|---|---|
static SimpleVariableDefinition |
ACCESSPATTERN_CAT_PAGE_VIEW
A read-write persistent global String event variable for recording catalogue page views by exhibit. |
static SimpleVariableDefinition |
ACCESSPATTERN_CLICKTHROUGH
A read-write persistent global String event variable for recording ad click-throughs by exhibit. |
static SimpleVariableDefinition |
ACCESSPATTERN_CLICKTHROUGH_BY_URI
A read-write persistent global String event variable for recording ad click-throughs by canonicalised URI. |
static SimpleVariableDefinition |
ACCESSPATTERN_COMPLETED_DOWNLOAD
A read-write persistent global String event variable for recording completed downloads by exhibit. |
static SimpleVariableDefinition |
ACCESSPATTERN_COMPLETED_DOWNLOAD_LOCAL
A read-write persistent local String event variable for recording completed downloads by exhibit. |
static SimpleVariableDefinition |
ACCESSPATTERN_EX_HOTLINK_REF_HOST
A read-write persistent global String event variable for recording hotlinking to our exhibits by referrer host. |
static SimpleVariableDefinition |
ACCESSPATTERN_PAGEVIEW_BY_URI
A read-write persistent global String event variable for recording page-views by canonicalised URI. |
static int |
AI_SCORER_GLOBAL_MAX_EVENTS
Maximum number of Scorer global "events"; strictly positive. |
static SimpleVariableDefinition |
AI_SCORER_STRING_GLOBAL_EVENT
Interchange between separate Gallery servers of the "best" Scorers/parameters. |
static SimpleVariableDefinition |
AI_SCORER_STRING_LOCAL_EVENT
Persistent storage of a large selection of the "best" Scorers/parameters. |
static java.util.SortedSet<SimpleVariableDefinition> |
defs
Immutable SortedSet of system SimpleVariableDefinition items. |
static int |
EVENT_INTERVAL_LONG_TERM_MS
Long-term event interval in milliseconds. |
static int |
EVENT_INTERVAL_MEDIUM_TERM_MS
Medium-term event interval in milliseconds. |
static int |
EVENT_INTERVAL_SHORT_TERM_MS
Short-term event interval in milliseconds. |
static int |
EVENT_INTERVAL_VLONG_TERM_MS
Very-long-term event interval in milliseconds. |
static int |
EVENT_INTERVAL_VSHORT_TERM_MS
Very-short-term event interval in milliseconds. |
static int |
EVENT_SAMPLES_RETAINED
Maximum number of samples retained at each interval; strictly positive. |
static SimpleVariableDefinition |
ExhibitDataSimpleCache_CACHE_AVAIL_SPACE_PERCENT_USED
ExhibitDataSimpleCache cache-percent-full pseudo-variable definition. |
static SimpleVariableDefinition |
ExhibitDataSimpleCache_CACHED_EXHIBIT_COUNT
ExhibitDataSimpleCache cached-exhibit count. |
static SimpleVariableDefinition |
ExhibitDataSimpleCache_EXHIBITS_FULLY_CACHED_PERCENT
ExhibitDataSimpleCache entries-fully-cached pseudo-variable definition. |
static java.lang.String |
ExhibitDataSimpleCache_PSEUDOVAR_PREFIX
ExhibitDataSimpleCache pseudo-variable name prefix. |
static int |
GENSTATS_MAX_EVENTS
Maximum number of different generic (String) stats recordable. |
static SimpleVariableDefinition |
GENSTATS_STRING_GLOBAL_EVENT
Generic read-write persistent global String event variable for general stats. |
static SimpleVariableDefinition |
GENSTATS_STRING_LOCAL_EVENT
Generic read-write persistent local String event variable for general stats. |
static SimpleVariableDefinition |
KEEP_ALIVE
A read-only, local, "null" variable used to do "keep alives" in variable stores. |
static SimpleVariableDefinition |
LOCAL_SYS_ID
The read-only, local, String variable for the local system ID. |
static int |
MAX_DIFF_EXHIBIT_NAME_VALUES
Maximum number of different exhibit name events recorded by most access-pattern stats. |
static int |
MAX_DIFF_VOTE_VALUES
Maximum number of different exhibit name events recorded for votes. |
static int |
MAX_QUIET_SYSTEM_VAR_LIFE_MS
Maximum interval between variable updates for system to be considered live (ms). |
static int |
MAX_VALUE_DISTRIBUTION_LATENCY_MS
Maximum latency we allow in distributing variable values (ms); positive. |
static java.util.Map<java.lang.String,SimpleVariableDefinition> |
nameToDef
Immutable Map from String variable name to SimpleVariableDefinition. |
static int |
PERFMON_MAX_EVENTS
Maximum number of different performance-monitoring (String) stats recordable. |
static SimpleVariableDefinition |
PERFMON_STRING_GLOBAL_EVENT
Generic read-write non-persistent global String event variable for performance monitoring. |
static java.util.SortedSet<java.lang.String> |
sensitiveVars
Immutable Set of String names of variables with slightly sensitive content. |
static SimpleVariableDefinition |
TEST_NUMBER_GLOBAL
A read-write global Number variable for testing. |
static SimpleVariableDefinition |
TEST_NUMBER_GLOBAL2
A second read-write global Number variable for testing. |
static SimpleVariableDefinition |
TEST_NUMBER_LOCAL
A read-write local Number variable for testing. |
static SimpleVariableDefinition |
TEST_NUMBER_LOCAL2
A second read-write local Number variable for testing. |
static SimpleVariableDefinition |
TEST_STRING_GLOBAL
A read-write global String variable for testing. |
static SimpleVariableDefinition |
TEST_STRING_GLOBAL_EVENT
A read-write persistent global String event variable for testing. |
static SimpleVariableDefinition |
TEST_STRING_LOCAL
A read-write local String variable for testing. |
static SimpleVariableDefinition |
ThroughputMonitorFilter_ACTIVE_MIRROR_NAME
ThroughputMonitorFilter mirror name value. |
static SimpleVariableDefinition |
ThroughputMonitorFilter_AEP_LONGHASH
ThroughputMonitorFilter current AEP hash (a Long). |
static SimpleVariableDefinition |
ThroughputMonitorFilter_AVAIL_BPS_PER_CLIENT
ThroughputMonitorFilter available-bandwidth-per-client value in Bps (byte/second). |
static SimpleVariableDefinition |
ThroughputMonitorFilter_BUSY_FRACTION
ThroughputMonitorFilter busy fraction (0.0 means idle, 1.0 flat-out busy). |
static SimpleVariableDefinition |
ThroughputMonitorFilter_CLIENT_COUNT
ThroughputMonitorFilter user-count value. |
static SimpleVariableDefinition |
ThroughputMonitorFilter_ltBps
ThroughputMonitorFilter long-term (smoothed) bytes-per-second value. |
static java.lang.String |
ThroughputMonitorFilter_PSEUDOVAR_PREFIX
ThroughputMonitorFilter pseudo-variable name prefix. |
static SimpleVariableDefinition |
ThroughputMonitorFilter_STICKY_CLIENT_COUNT
ThroughputMonitorFilter "sticky" user-count value. |
static SimpleVariableDefinition |
ThroughputMonitorFilter_YEARLY_UNIQUE_VISITORS
ThroughputMonitorFilter yearly-unique-visitors value. |
static java.lang.String |
TunnelServlet_PSEUDOVAR_PREFIX
ThroughputMonitorFilter pseudo-variable name prefix. |
static SimpleVariableDefinition |
TunnelServlet_SLAVE_ADDRS
TunnelServlet slave/client/mirror remote-addresses value (as Strings). |
private static SimpleVariableDefinition[] |
vars
Private array of system variable definitions; non-null. |
static SimpleVariableDefinition |
VOTE_COMMENT
A read-write persistent global String event variable for recording vote comments by exhibit. |
static SimpleVariableDefinition |
VOTE_CON
A read-write persistent global String event variable for recording negative votes by exhibit. |
static SimpleVariableDefinition |
VOTE_PRO
A read-write persistent global String event variable for recording positive votes by exhibit. |
| Constructor Summary | |
|---|---|
SystemVariables()
|
|
| Method Summary |
|---|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int MAX_VALUE_DISTRIBUTION_LATENCY_MS
This value should be identical for all participants in a system.
A value of a few seconds to a few minutes is probably reasonable to balance network traffic against prompt response to events that affect the whole distributed system.
We base this on the maximum permitted inter-peer clock skew.
public static final int MAX_QUIET_SYSTEM_VAR_LIFE_MS
If it longer than this between any variable updates for a given server instance, then other participants may consider that instance to be "dead"/resting, and discard knowledge of it and/or variable values automatically.
There are other ways of finding out how old data from a particular system is for filtering, but this is a back-stop.
Should be long enough to survive a temporarily-disconnected system, eg due to a short network outage or a down or disconnected master, but short enough to avoid filling up variable stores/caches with useless stale data from dead subsystems.
Must be much longer than MAX_VALUE_DISTRIBUTION_LATENCY_MS.
A value of the order of minutes to hours is probably good; and we might add in some small multiple of the normal inter-system skew that we are normally prepared to tolerate.
public static final int EVENT_SAMPLES_RETAINED
Most periods/intervals are chosen so that the full span of samples at one interval covers a useful time, ie from over an hour to over a year from VSHORT to VLONG. Indeed, the span is designed to overlap a useful cycle time by a little so that this time last hour/day/year etc can be easily compared with the same place last time round the cycle.
public static final int EVENT_INTERVAL_VSHORT_TERM_MS
(One use is to make real-time testing of the event system possible.)
public static final int EVENT_INTERVAL_SHORT_TERM_MS
public static final int EVENT_INTERVAL_MEDIUM_TERM_MS
Of the order of a few tens of minutes.
public static final int EVENT_INTERVAL_LONG_TERM_MS
Of the order of a few hours.
public static final int EVENT_INTERVAL_VLONG_TERM_MS
Of the order of tens of hours to days.
public static final SimpleVariableDefinition KEEP_ALIVE
public static final SimpleVariableDefinition LOCAL_SYS_ID
public static final SimpleVariableDefinition TEST_NUMBER_GLOBAL
public static final SimpleVariableDefinition TEST_NUMBER_GLOBAL2
public static final SimpleVariableDefinition TEST_NUMBER_LOCAL
public static final SimpleVariableDefinition TEST_NUMBER_LOCAL2
public static final SimpleVariableDefinition TEST_STRING_LOCAL
public static final SimpleVariableDefinition TEST_STRING_GLOBAL
public static final SimpleVariableDefinition TEST_STRING_GLOBAL_EVENT
public static final int PERFMON_MAX_EVENTS
public static final SimpleVariableDefinition PERFMON_STRING_GLOBAL_EVENT
This is non-persistent since the data is ephemeral and has little value once fixes have been made, etc.
We expect this to be very quiet most of the time, except during heavy load or when background sampling is enabled.
public static final int GENSTATS_MAX_EVENTS
public static final SimpleVariableDefinition GENSTATS_STRING_GLOBAL_EVENT
Note that this is valid for all event periods.
public static final SimpleVariableDefinition GENSTATS_STRING_LOCAL_EVENT
Note that this is valid for all event periods.
Likely to receive overlap of events with GENSTATS_STRING_GLOBAL_EVENT.
public static final java.lang.String ExhibitDataSimpleCache_PSEUDOVAR_PREFIX
public static final SimpleVariableDefinition ExhibitDataSimpleCache_CACHE_AVAIL_SPACE_PERCENT_USED
If there is more than one ExhibitDataSimpleCache in a local pipeline then behaviour is undefined as all instances will update this value.
Main attributes:
public static final SimpleVariableDefinition ExhibitDataSimpleCache_EXHIBITS_FULLY_CACHED_PERCENT
If there is more than one ExhibitDataSimpleCache in a local pipeline then behaviour is undefined as all instances will update this value.
Main attributes:
public static final SimpleVariableDefinition ExhibitDataSimpleCache_CACHED_EXHIBIT_COUNT
If there is more than one ExhibitDataSimpleCache in a local pipeline then behaviour is undefined as all instances will update this value.
Main attributes:
public static final java.lang.String ThroughputMonitorFilter_PSEUDOVAR_PREFIX
public static final SimpleVariableDefinition ThroughputMonitorFilter_CLIENT_COUNT
The global map of values can be summed to give the total on the entire distributed system.
Main attributes:
public static final SimpleVariableDefinition ThroughputMonitorFilter_STICKY_CLIENT_COUNT
A "sticky" user is typically one that views at least a couple of pages and stays around for a few minutes.
The global map of values can be summed to give the total on the entire distributed system.
Main attributes:
public static final SimpleVariableDefinition ThroughputMonitorFilter_ltBps
This is expressed as an integral quantity for simplicity/robustness, as an Integer if possible for compactness on the wire.
The global map of values can be summed to give the total on the entire distributed system.
Main attributes:
public static final SimpleVariableDefinition ThroughputMonitorFilter_YEARLY_UNIQUE_VISITORS
The global map of values can be summed to give the total on the entire distributed system.
Main attributes:
public static final SimpleVariableDefinition ThroughputMonitorFilter_BUSY_FRACTION
Main attributes:
public static final SimpleVariableDefinition ThroughputMonitorFilter_AVAIL_BPS_PER_CLIENT
Will be forced to zero if the system is busy or otherwise unwilling to accept new clients.
Main attributes:
public static final SimpleVariableDefinition ThroughputMonitorFilter_AEP_LONGHASH
Can be used in load balancing to avoid sending traffic to a mirror which is not on the same version of the AEP.
Main attributes:
public static final SimpleVariableDefinition ThroughputMonitorFilter_ACTIVE_MIRROR_NAME
The global map of values can be used to find which mirrors are active.
Main attributes:
public static final java.lang.String TunnelServlet_PSEUDOVAR_PREFIX
public static final SimpleVariableDefinition TunnelServlet_SLAVE_ADDRS
These addresses are one of:
Main attributes:
public static final int MAX_DIFF_EXHIBIT_NAME_VALUES
We pick a prime-ish value for a larf.
public static final SimpleVariableDefinition ACCESSPATTERN_CAT_PAGE_VIEW
The event values are exhibit short names (eg no directory path), since they save a little memory, should be unique, and may even be a bit more long-lasting than the full name.
We are only interested in the longest-term stats.
public static final SimpleVariableDefinition ACCESSPATTERN_COMPLETED_DOWNLOAD
The event values are exhibit short names (eg no directory path), since they save a little memory, should be unique, and may even be a bit more long-lasting than the full name.
We are only interested in the longest-term stats.
public static final SimpleVariableDefinition ACCESSPATTERN_COMPLETED_DOWNLOAD_LOCAL
The event values are exhibit short names (eg no directory path), since they save a little memory, should be unique, and may even be a bit more long-lasting than the full name.
We are only interested in the longest-term stats.
public static final SimpleVariableDefinition ACCESSPATTERN_CLICKTHROUGH
At best this is likely to be a sampling.
Should ideally reflect access by (sane) humans, thus excluding obvious spiders, repeat clickers, etc, if possible! This may well record a representative sampling rather than all events, so rank is more reliable than absolute count.
The event values are exhibit short names (eg no directory path), since they save a little memory, should be unique, and may even be a bit more long-lasting than the full name.
We are only interested in the longest-term stats.
public static final SimpleVariableDefinition ACCESSPATTERN_CLICKTHROUGH_BY_URI
At best this is likely to be a sampling.
Should ideally reflect access by (sane) humans, thus excluding obvious spiders, repeat clickers, etc, if possible! This may well record a representative sampling rather than all events, so rank is more reliable than absolute count.
The URIs are lower-cased (since some are case-insensitive) and limited in length.
We allow quite a number of unique values as information is likely to be quite sparse.
We are only interested in the longest-term stats.
public static final SimpleVariableDefinition ACCESSPATTERN_PAGEVIEW_BY_URI
At best this is likely to be a sampling.
Should ideally reflect access by (sane) humans, thus excluding obvious spiders, repeat clickers, etc, if possible! This may well record a representative sampling rather than all events, so rank is more reliable than absolute count.
The URIs are lower-cased (since some are case-insensitive) and limited in length.
We allow a large number of unique values as information is likely to be quite sparse.
We are only interested in the longest-term stats.
public static final SimpleVariableDefinition ACCESSPATTERN_EX_HOTLINK_REF_HOST
We only really need to record the top offenders, not every minor infraction!
This is sometimes OK, eg from a bona-fide image search engine, but is often bad, eg bandwidth theft by idle Web site builders/bloggers, so we need to keep an eye on it.
We are only interested in the longest-term stats.
public static final int MAX_DIFF_VOTE_VALUES
public static final SimpleVariableDefinition VOTE_PRO
Should ideally reflect access by (sane) humans, thus excluding obvious spiders, repeat clickers, etc, if possible! This may well record a representative sampling rather than all events, so rank is more reliable than absolute count.
The event values are exhibit short names (eg no directory path), since they save a little memory, should be unique, and may even be a bit more long-lasting than the full name.
We are only interested in the longest-term stats.
public static final SimpleVariableDefinition VOTE_CON
Should ideally reflect access by (sane) humans, thus excluding obvious spiders, repeat clickers, etc, if possible! This may well record a representative sampling rather than all events, so rank is more reliable than absolute count.
The event values are exhibit short names (eg no directory path), since they save a little memory, should be unique, and may even be a bit more long-lasting than the full name.
We are only interested in the longest-term stats.
public static final SimpleVariableDefinition VOTE_COMMENT
This has a maximum of "0" different values since all we are interested in is the audit trail, from which we may hand-pick various items.
We are only interested in the longest-term stats.
public static final int AI_SCORER_GLOBAL_MAX_EVENTS
public static final SimpleVariableDefinition AI_SCORER_STRING_GLOBAL_EVENT
public static final SimpleVariableDefinition AI_SCORER_STRING_LOCAL_EVENT
Note that this is valid for all event periods.
Likely to receive overlap of events with AI_SCORER_STRING_GLOBAL_EVENT.
private static final SimpleVariableDefinition[] vars
public static final java.util.SortedSet<SimpleVariableDefinition> defs
public static final java.util.Map<java.lang.String,SimpleVariableDefinition> nameToDef
public static final java.util.SortedSet<java.lang.String> sensitiveVars
However, no data in the system is secret or sensitive in a legal sense, so this is only a weak hint!
| Constructor Detail |
|---|
public SystemVariables()
|
DHD Multimedia Gallery V1.57.21 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||