Versions Compared

Key

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

Auto Archive

Functionality for archive and restore

  This will write potion 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).

   Saves the suite/family nodes to disk, and then removes the child nodes from the definition

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

     It improves time taken to checkpoint and reduces network bandwidth

     If the node is re-queued or begun, the child nodes are automatically restored

      Use  --restore to reload the archived nodes manually

     Care must be taken if you have trigger reference to the archived nodes

      The nodes are saved to ECF_HOME/ECF_NAME.check, where '/' has been replace with ':' in ECF_NAME

       Usage::

         --archive=/s1           # archive suite s1

         --archive=/s1/f1 /s2    # archive family /s1/f1 and suite /s2

          --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 f4
    autoarchive 0      # archive immediately after complete
  endfamily
endsuite


Auto restore

  Restore archived nodes can be done manually with a user command

  Restore will fail if:

  • Node has not been archived
  • Node has children, i.e as a part of replace
  •  If the file ECF_HOME/ECF_NAME.check does not exist

  Usage:

  • ecflow_client --restore=/s1/f1   # restore family /s1/f1
  • ecflow_client  --restore=/s1 /s2  # restore suites /s1 and /s2


 Suite and Family nodes can also be restored with  attribute autorestore.  Whenever a family node completes we check if it has a autorestore 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
 endfamily
 family f2
     autorestore /s/f1 /s/f3 /s/f4 # autorestore
 endfamily
 family f3
    autorestore /s/f1  # autorestore
    task t1
 endfamily
 family f4
    autorestore /s 
    task t1
 endfamily
 family f5
    autorestore /s4 /s4/f1 /s4/f2 # this is an extern so allow
    task t1
 endfamily
endsuite