OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

sdd message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Fw: Rollback - Reqt 2.1.1.6.1


All,

I was asked to put together a description of how the information in the current SDD schema could be used during rollback, as part of considering whether any further action is needed to address requirement 2.1.1.6.1:

The SDD specification must support the identification of components that should be rolled back if later components fail, and identification of components that should cause an overall rollback if that component fails to install.

Here's the analysis.

SUMMARY

The current schema can support:

  1. Full rollback of a new solution or update to a solution, providing the appropriate artifacts are provided.
  2. Partial rollback of a new solution to reestablish a valid system configuration, backing out optional components that had failed to install or caused functional problems.
  3. Partial rollback of an update to a solution to reestablish a valid system configuration, where updates are provided as requisites and the previous version already met the solution requirements.
  4. Fine-grained rollback of part of a solution update, before retrying the same update.

The schema elements that support this are:
There are details to be worked on what the SDD spec should say about rollback order, see discussion below.

There are details to be worked about the connection between features and selectable content, and what this should mean for rollback granularity.

Support for partial rollback of a maintenance update to a solution (3) may require further discussion.


GORY DETAILS

Rollback of an SIU/SCU

The basic behavior for rollback of an SIU/SCU is:
If an error occurs whilst an SIU/SCU operation is in-flight, then one of three situations may occur:
Order of Rollback

Typically, a runtime is likely to reverse the order of install in order to rollback. There are a couple of complications:
We need to decide what the spec should say about rollback order. Here is one possibility.
For each composite IU:
Alternatively, we could assert that undo order has to be explicitly defined using internal dependencies.


Rollback Extent

The simplest assumption is full rollback - i.e. that all operations performed in a given "transaction" are to be rolled-back.

There are two purposes for a finer-grained rollback may have one of two purposes:
The various possibilities for partial rollback will likely be driven by user or policy decisions. With the current schema, an SDD author cannot constrain partial rollback providing it re-establishes a valid system configuration.

Possible granularities of partial rollback to reestablish a valid system configuration are:
  1. Rollback the top-level IU package and all its composed components. Do not rollback its requisites.
  2. Rollback a new optional component of the top-level IU package, and anything that depends on it.
  3. Rollback a new optional component of a composed IU package, and anything that depends on it.
  4. Rollback an update in a contained IU package which updates a shared (federated) resource, providing the pre-existing version satisfied the solution requirements. This is problematic, see below.
  5. Rollback an update in a requisite IU package which updates a shared resource, providing the pre-existing version satisfied the solution requirements (user had chosen to apply the more recent level, even though the original level was within range).

I haven't defined "optional component" in (2) and (3). This could either be: This point should be resolved when we close on the semantics of features - e.g. are features to assist a user in making good selections, or a mandatory contract defining what can be selected.

For (4), we would need to agree under what circumstances it is valid to rollback an update to one component of a solution, but not the overall solution. The current assumption is that the solution requires the composed level, or a more recent, backwards-compatible level. If the update is actually "optional", it could be better shipped as a requisite (although not all runtimes would support choosing to install a more recent requisite if the base requirement was satisfied). So I would argue that updates to contained components cannot be individually rolledback.

Note on Schema Element Names

Note: Schema currently has element names of "xxxArtifact" for each operation. I think it would be more accurate if we changed this to just "xxx" (e.g. install, undo), as there does not have to be an actual artifact for each operation.

Regards,
Christine


Senior Technical Staff Member
IBM, 11501 Burnet Road, Mail Point 901-6B10
Austin, TX 78758
1-512-838-3482 tl 678-3482

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]