next up previous contents index
Next: Edit History Up: Version Handling and Previous: Version Handling and

Temporal History

    

An object has a history structure node which allows access to previous versions of that object. Currently, the history structure node contains the temporal history of the object. The temporal history is a partial order over the versions representing the relation `is created before'. When two versions of an object are not related to each other with respect to this relation, we call them parallel versions.   

Versions have a status. When a version is created in a workspace, but not yet stored in the database, we say that the version is transient  . When the version has been stored in the database, the version is promoted to be a working version  . A working version cannot be changed, i.e. when we try to modify a working version, a new transient version is automatically created.

The history structure node contains the following links for handling the temporal history.   

When a transient version is created (i.e. upon creation of a new object, or upon modification of an existing object having only working versions) the following happens:

  1. TH_TRANSIENT and BUFFERNODE get a new field involving the new version.

  2. A unique datetag is created.

  3. BUFFERNODE gets a field with the datetag as fieldname and the version as linkitem.

  4. TH_TRANSIENT gets a field with the datetag as fieldname and the version as last linkitem.

  5. The elements in SYSTEM:Latest are put in the new TH_TRANSIENT field as linkitems, before the new version.

  6. The elements in SYSTEM:Latest are added to SYSTEM:Former_Latest.

  7. SYSTEM:Latest in the database doesn't change. SYSTEM:Latest in the workspace becomes SYSTEM:Latest in the database minus the elements of SYSTEM:Former_Latest plus the new version.

When a transient version is promoted to a working version (i.e. by an explicit store command)     then the following happens:

  1. The field in TH_TRANSIENT involving this version is moved to VSNET.

  2. BUFFERNODE is set to be empty.

  3. SYSTEM:Latest (in both the database and the workspace) is set to be SYSTEM:Latest in the database minus the elements of SYSTEM:
    Former_Latest in the workspace plus the new working version.

  4. SYSTEM:Former_Latest is set to be empty.



next up previous contents index
Next: Edit History Up: Version Handling and Previous: Version Handling and



Martin Sjolin
Thu Jun 15 20:41:59 MET DST 1995