The identification of suitable time-scales is of crucial importance
to any dynamical problem. Time-scales control rates of competition which
lead to balance, and also rates of change.
It is easy to show that human administrators only compete with
automatic systems in speed and efficiency at times of the day when
they have nothing pressing to do. Indeed, it is always possible to
arrange for an automatic system to beat a human, provided it can run
in overlapping instantiations. A straightforward comparison of the
time-scales involved in automated maintenance, to those of manual human
maintenance can be made for any operation which is programmable in an
automatic system with available technology.
Alarm systems which merely notify humans of errors and then rely on a
human response are intrinsically slower than automatic systems which
repair errors, provided the alarms represent errors which can be
corrected with current automation.
The response time
of a automatic machine system M,
falls between two bounds (see figure 1)
 |
|
|
(16) |
where Tp is the scheduling period for regular execution of the
system (e.g. the cron interval, typically half-hour to an hour),
Te(A) is the execution time of the automatic system (typically
seconds). The integer
since the number of iterations of the
automatic system required to fix a problem might be greater than
one. The time required to make a decision about the correct course of
action Td(A) is negligible for the automatic system.
Figure 2:
Overlapping work rates of human and automatic systems.
 |
For a human being, making a decision based on a predecided policy, the
response time
falls between the limits:
 |
|
|
(17) |
Td(H) is again the decision time, or time required to determine the
correct policy response (typically seconds to minutes). Te(H) is
the time required for a human to execute the required remedy
(typically seconds to minutes). Tw(H) is the time for which the
human is busy or unavailable to respond to the request, i.e. the
wait-time. The availability of human beings is limited by social and
physiological considerations. In a simple way, one can expect this to
follow a pattern in which the response time is greatest during
the night; simplistically, if one assumes that humans sleep 8 hours,
 |
(18) |
where time is measured in hours, whereas
 |
|
|
(19) |
We can note that human response times are usually much longer than the
corresponding machine response times,
 |
|
|
|
 |
|
|
(20) |
and that the periodic interval of execution of the automatic system is
generally taken to be greater than the execution time of the
automatic system
 |
|
|
(21) |
thus avoiding overlapping executions (though this is not necessarily a
problem, see the discussion of adaptive locks[9]) It is
always possible to choose the scheduling interval to be arbitrarily
close to Te(A) (i.e. as short as one likes). Then provided,
the automatic system can always win over a human. This last
inequality requires qualification however, since very long jobs (such
as backups or file tree parses) increase exponentially in time with
the size of the file tree concerned. This makes a prediction: it tells
us that one should always arrange to allow such long jobs to be run
last in a sequence of maintenance tasks, and also in overlappable
threads. This means that long jobs will not hinder the rapid execution
of a maintenance program.
Cfengine[6] allows overlapping runs using its scheme of
adaptive locks[9]. Thus, by scheduling long jobs last in
a cfengine program, it is virtually always possible for cfengine to beat a
human, unless it is prevented from running, or the human is given the
chance to respond with a head-start; this seldom happens by chance.
Next: Primitive moves
Up: The scope of a
Previous: Measures and characters
Mark Burgess
2000-03-24