Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Auto Archive

This will write a portion of the definition to disk and restore on re-queue/begin

This helps in coping with extra-large suites.

Archives suite or family nodes *IF* they have child nodes(otherwise does nothing).

...

This saves memory in the server , when dealing with huge definitions that are not needed.

 It improves the time taken to checkpoint and reduces network bandwidth

...

The nodes are saved to ECF_HOME/<host>.<port>.ECF_NAME.check, where '/' has been replaced with ':' in ECF_NAME

Note

It should be noted that trigger expressions can determine if a node has been archived using <flag>archived. See the example below.

 Automatic archiving is prevented:

  • If the node with auto archive attribute has previously been restored. Use re-queue to clear the restored flag.
  • If the node or any of its parents are suspended.

Usage

  • ecflow_client --archive=/s1                           s1                       # archive suite s1
  • ecflow_client --archive=/s1/f1 /s2            # archive family /s1/f1 and suite /s2
  • ecflow_client --archive=force /s1 /s2      # archive suites /s1,/s2 even if they have active tasks

...

Code Block
 suite s
  family f1
    autoarchive +01:00 # archive one hour after complete
  endfamily
  family f2
     autoarchive 01:00 # archive at 1 am in morning after complete
  endfamily
  family f3
    autoarchive 10     # archive 10 days after complete
  endfamily
  family f3_1
    autoarchive 10 -i    # archive 10 days after complete, queued,aborted. i.e if no activity archive after 10 days (ecflow 5.6.1)
  endfamily
  family f4
    autoarchive 0      # archive immediately after complete, can take up to a minute
  endfamily
  family restore
    task res
       trigger /s/f1<flag>archived   # if node /s1/f1 has been archived, restore it.
       autorestore /s/f1
endsuite

Auto restore

  Archived nodes can be restored manually with a user command or automatically via autorestore auto-restore attribute in the definition.

  The automatic restore is only applied when a node containing the auto-restore attribute completes.

  Restore will fail if:

  • Node has not been archived. Also, auto-restore on self is meaningless.
  • Node has children, i.e. as a part of replace
  •  If the file ECF_HOME/ECF_NAME.check does not exist

...

Whenever a  node completes we check if it has a autorestore an auto-restore attribute.

If it does, we then try to restore from disk the referenced suite/family node.

Code Block
extern /s4
extern /s4/f1
extern /s4/f2

suite s
 family f1
    autorestore ./f1 ./f2 ./f3 ./f4     # autorestore
    task t1                        # when t1 completes, and hence f1, apply restore
 endfamily
 family f2
     autorestore /s/f1 /s/f3 /s/f4  # autorestore
    task t1                        # when t1 completes, and hence f2, apply restore
 endfamily
 family f3
    autorestore /s/f1              # autorestore
    task t1
 endfamily
 family f4
                   autorestore /s 
   # taskwhen t1 completes, and hence f3, apply restore
 endfamily
 family f5f4
    autorestore /s4 /s4/f1 /s4/f2  # this is an extern so allow
    task t1                        # when t1 completes, and hence f4, apply restore
 endfamily
endsuite