[Info-vax] OpenVMS STARTUP Whitepaper

David Jones osuvman50 at gmail.com
Tue Dec 8 19:37:16 EST 2020


On Thursday, December 3, 2020 at 10:56:44 AM UTC-5, geze... at rlgsc.com wrote:
> I have posted a whitepaper on OpenVMS STARTUP, discussing the capabilities of STARTUP.COM and its related files. 

I've been gradually migrating my hobbyist cluster towards having a sequencer, as
the whitepaper calls it, control the startup. It's driven by a database with two
main tables and an ancillary table from which I define 2 views for each node
in the cluster. The schemas for node 'PSXP1' are thus:

  sqlite> .schema PSXP1_boot*
  CREATE VIEW PSXP1_boot AS
     SELECT name,step,inv_type,command,param,description FROM component
       WHERE name IN (SELECT component FROM startup
         WHERE node_group IN ('*','PSXP1'))
  /* PSXP1_boot(name,step,inv_type,command,param,description) */;
  CREATE VIEW PSXP1_boot_dep as SELECT component,prereq FROM dependencies
      WHERE component in (SELECT name FROM PSXP1_boot);
  /* PSXP1_boot_dep(component,prereq) */

The view rows are used by the startup driver (sequencer) to build a boot list
of commands to spawn. The sequencing of the spawns then happens at 2 levels:

  1. All components with a higher step priority must complete before a component
     may start ('step' is equivalent to 'phase' in the OpenVMS startup driver).
     Components with the same step value may run concurrently, subject to a
     limit parameter imposed by the sequencer (default 2).

  2. Components with rows in the dependencies view are blocked from starting
     until all their prerequisite components have completed.

I haven't decided the best way to handle the case where the prereq component is in
the master component table but inadvertantly not in the view for the node. Do you 
omit the component, ignore the dependency, or automatically pull in the needed
component at the same step priority?



More information about the Info-vax mailing list