[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference smurf::unix_objsym

Title:Digital UNIX Object File/Symbol Table Notes Conference
Moderator:SMURF::LOWELL
Created:Mon Nov 25 1996
Last Modified:Thu Jun 05 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:71
Total number of notes:314

66.0. "Rolling cluster upgrades and format changes" by R2ME2::SIMONS (Al Simons 381-2187) Tue Mar 18 1997 16:31

    I'm reviewing the UNIX Rolling Upgrade specification.
    
    UNIX is getting serious about clusters, and with Steel they are going
    to be of similar capability to VMS Clusters.  With this increasing
    emphasis, they're getting serious about supporting rolling upgrades to
    the cluster.  This means that clusters can be upgraded to a new version
    of the OS one node at a time, and then when all are upgraded, the
    administrator can throw a switch that enables new functionality.
    
    What does this mean for us?  My opinion is that we should follow the
    rules when it comes to changes that would affect an existing
    application recompilation--so that the program will run and be
    debuggable on any node in the cluster on which it was compiled.  
    If the user has to write a new program (or modify one) to get newly 
    available capabilities/formats and those capabilities are only
    available on the upgraded cluster members, it is his/her problem when
    it doesn't run on non-upgraded members.
    
    What does following the rules mean?
    
    UNIX is providing an API which will return the "running" version of a
    cluster.  The running version is the version the cluster is upgrading
    from, until all nodes have been upgraded and the system administrator
    has issued a switch version command. When the switch is thrown, the
    upgraed version becomes the running version.  Following the rules 
    would mean that we use the API and not use any format changes which 
    occurred after the running version.
    
    Stated another way: any changes we're targetting for Steel that require
    coordination between components should execute conditionally based on
    the API's return value.
    
    Randy asked how this is different from compiling on a new system and
    taking the executable (or objects) to an older system and expecting
    them to work.  My answer is that a cluster should be thought of as much
    more like one unified system than several independent systems.  A user
    who logs into the cluster and compiles /links an application today,
    should be able to log into the cluster tomorrow (on potentially a
    different node) and debug the application.
    
    Also, the time frame is short.  This doesn't require multiple OS
    releases to get new capabilities, it just requires the sysadmin to 
    finish the upgrades and throw the switch.
    
    Well, that's my opinion.  Comments?
    -Al
    
T.RTitleUserPersonal
Name
DateLines
66.1withdrawnSMURF::LOWELLTue May 06 1997 13:4426
This proposal has been withdrawn by Al Simons based on additional
discussions with the cluster group.  See below...




Date: Thu, 01 May 1997 12:38:05 -0400
To: [email protected]
From: Al Simons <[email protected]>
Subject: Development environment in a cluster rolling upgrade
  environment

I have previously raised the concern about what the DE should do in a
cluster rolling upgrade.  Specifically should our components be smart enough
to not make format changes, etc., if we are in the middle of a rolling
upgrade?  

>From a user standpoint, the question is whether, on a cluster running both
Vn and Vn+1, should an artifact built on a node running Vn+1 be able to be
consumed by a tool running on Vn?

The cluster group is comfortable with the answer "No."  Their belief is that
there is a longstanding policy of not running on previous versions something
built on a later version. The cluster group believes that the DE can be
entirely cluster unaware.