date and time created 93/05/11 11:50:48 by bostic
authorKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Wed, 12 May 1993 02:50:48 +0000 (18:50 -0800)
committerKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Wed, 12 May 1993 02:50:48 +0000 (18:50 -0800)
SCCS-vsn: usr.sbin/timed/timed/CHANGES 5.1

usr/src/usr.sbin/timed/timed/CHANGES [new file with mode: 0644]

diff --git a/usr/src/usr.sbin/timed/timed/CHANGES b/usr/src/usr.sbin/timed/timed/CHANGES
new file mode 100644 (file)
index 0000000..45d1372
--- /dev/null
@@ -0,0 +1,144 @@
+#      @(#)CHANGES     5.1 (Berkeley) %G%
+
+This new version is almost identical to the timed and timedc code
+that has been shipped for years by a workstation vendor.
+
+Among the many changes:
+
+improve `timedc msite` to accept a list of hostnames.
+
+change slave-masters to answer the packets generated by `timedc msite`
+    with the name of the real master, not their own.  This makes it
+    possible to "chase the chain" of slave servers to the ultimate
+    master.
+
+much improve the log caused by `timedc trace on`:
+    -made `timed -t` work.
+    -suppression of repeated entries, which both slowed down the daemon
+       (sometimes catastrophically) and tended to make disks fill up
+       even more quickly.
+    -better time stamps on log entries
+    -more messages
+    -dump information about slaves, master, and so on each time
+       a message asking the log be turned on is received, and
+       when the log is turned off.
+    -fewer CPU cycles
+
+use a hash table to keep track of slaves, instead of the stupid linear
+    list.  This becomes handy with hundreds of slaves, instead of
+    the original design limit of "a room with a few VAX's."
+
+separate the main protocol timer from that used to look for other networks
+    to master.
+
+time stamp packets received by the daemon, so that time corrections
+    are not made (even more) inaccurate by waiting in the internal,
+    timed queue while the daemon is processing other messages.
+
+made -n and -i work with subnets not named in /etc/networks
+
+compute the median of the measured clocks, instead of the average
+    of "good" times.
+
+vastly improve the accuracy of the clock difference measure by 
+    `timedc clockdiff`.
+
+use adjtime() when possible, and directly set the clock only when
+    necessary.
+
+when the requested adjustment is small, perform only part of it, to
+    damp oscillations and improve the long term accuracy of the
+    adjustments.
+
+fix uncounted core-dumps on machines that do not allow dereferencing 0
+    in both the daemon and timedc.
+
+fix "master loop detection".
+
+fix several cases in which multi-homed masters could get into shouting 
+    matches, consuming all available network bandwidth and CPU cycles
+    (which ever runs out first), and convincing all bystanders to stop
+    advancing their own clocks.
+
+refuse to behave badly when other machines do.  Instead of arguing forever,
+    go off and sulk when other machines refuse to play by the rules.
+
+increase the maximum number of clients.
+
+add "-F host,host2,..." to "freerun" or "trust" only some hosts.  This
+    is handy both when only some machines should be trusted to let
+    root use the `date` command to change time in the network.
+
+    It is also handy when one machine has some other way of adjusting
+    its clock, whether NTP or a direct radio or atomic connection.
+    "-F localhost" causes `timed` to "trust" only itself.
+
+    It is also handy to build a hierarchy of timed masters crossing
+    networks.  The TSP protocol has no provision of "goodness of clock",
+    no natural way to completely heal network paritions.  Judicious
+    use of -F or -G can cause each gateway to trust only itself and
+    machines closer to a central machine with a radio or atomic clock.
+
+add #ifdef code that supports NIS "netgroups" of trusted hosts, which
+    can be easier to administer than -F.
+
+add #ifdef code to compute an aged total adjustment.  This can be used
+    in systems that can make long term changes in their system clock
+    frequency, e.g. "timetrim" in the Silicon Graphics kernel.
+
+
+Problems observed by others that are unresolved include:
+
+Practically any users can send to the master TSP messages and this
+       way corrupt the reliability of the system.  Authentication
+       of messages should be provided.  Unfortunately, that would
+       require changing the protocol with all of the implied
+       compatiblity problems.  Fortunately, the new -F and -G args
+       can be used to cause the daemon to ignore time changes from
+       untrusted machines.
+
+MAN.   The limit of 1013 on the number of slaves hosts should be doc'ed.
+
+       It should be dynamically allocated with no limit.  On a
+       large network, one host could possibly master over many
+       more than 30 hosts.   Given the timers in the code and
+       effectively in the protocol, and the time required by each
+       master to talk to each slave, it is not practical to have
+       more than 200-300 slaves.  The master cannot keep up because
+       the slave-chatting is single-threaded.  when the master
+       gets behind, slaves start demanding elections.  To
+       significantly increase the number of slaves would require
+       multi-treading things, and given that a network with more
+       than 300 directly addressable machines has worse problems
+       than keep the time of day right, not worth worrying about.
+
+UGLY,CODE. timedc/cmds.c has a lots of repeated code in it.
+
+****    The first thing is that each command is set up as if it
+       were an individual program taking argc and argv.  A more
+       conventional calling style should be used.  I don't think
+       any of the routines take more than a couple arguments.
+
+UGLY.  fxn definition syntax does't follow convention:
+       has type on same line.
+
+****   It needs to be fixed at least enough that tags
+       will work on it.  An entire cleanup might be nice later, but
+       is noncritical.
+
+LOBBY(mildly),CODE:    Would be very convenient if date(1) took a
+       +-<number> argument to set the time relatively.  With
+       the advent of timed it is now reasonable to synchronize
+       with WWV, which is nearly impossible to do "by hand"
+       with just an absolute date, and scripts are too slow.
+       format could be +-nn...nn.ss, where the '.' is required
+       to remove ambiguity.
+
+****   If you want to do it go ahead.  It sounds useful.  As far as
+       syntax goes, the normal format for the date should work just
+       fine for this.  If the date is preceeded by a plus or minus,
+       the change is relative, otherwise it is absolute.
+
+
+Vernon Schryver.
+vjs@sgi.com