[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Nameserver worlds and Internet namespace

    Date: Thu 26 May 88 12:05:06-PDT
    From: TYSON@Warbucks.AI.SRI.COM (Mabry Tyson)

    If you have a nameserver for the Internet namespace, do NOT try to boot
    that machine into a world built on another machine (non-nameserver for
    the Internet) at your site.  The result will be more hours of execution
    than you will want to wait.  I let one run about 5 hours before I gave
    up on it.  I checked periodically and it was trying to reload the Internet
    namespace.  (Basically to reload the namespace it has to delete each host
    (each name?) from the full set of names.  The way it is implemented, it
    appears to be an n**2 or n**3 process.)

    I know that when I get a new release, the nameserver is one of the last
    machines I convert to running it.  I build a site-specific world on the
    other machines and slowly get everyone to convert their code.  Mostly
    independent of that, I build a world on our nameservers.  They also
    get our site system, so it is tempting to build it on top of the world
    (as an Incremental World) that we run on the other machines.  That loses
    big.  I had to go back to the distribution world, do a SET SITE, and
    load all the software (Symbolics's and ours).

?? I don't get this behavior at all! I *do* build an incremental world on
top of a world with the site-specific stuff run by all the machines, and
don't have any problems. Yes, it takes a while to load the entire internet
namespace, but it's only about 1/2 hour. In fact, the big lose is to do the
set site on the nameserver machine, because it loads the internet namespace
as DIST-HOST or whatever it's called, then forgets it, and reloads it after
you boot under the site configured world during warm-initializations (or
cold, I forget). Double the time, and you must then save yet another world!
(This is avoided if the site is already configured, so when you boot it, it
loads the internet namespace at that time, and you save that world.)

Where I have run into a very long update is trying to have a secondary
server for the internet namespace. It took so long to boot a machine as it
did it's namespace thing for each and every host I gave up after a couple
hours, and decided not to have a secondary for INTERNET.

I also build the nameserver world on yet another host, just sending the
appropriate messages to the namespace:

(defmethod (:server-force neti:namespace) (type)
  (setf neti:local-server-type type) ;set the type
  (setf neti:server-access-paths
	(neti:compute-server-access-paths `(,neti:*local-host*)))
  (setf neti:file-information nil)   ;make sure it will look it up again

  (send self :set-unloaded "Reload Namespace")
  (send self :check-validity nil t))

and then for any namespace the target machine is to serve, send it a
:server-force message with argument of :primary or :secondary.

Since it reads the file directly, it's basically the same amount of time as
having done it native...

Brad Miller		U. Rochester Comp Sci Dept.
miller@cs.rochester.edu {...allegra!rochester!miller}