Files, Jobs, Nodes, and Sets

All FlowTracer services are based on the management of the dependencies between files and jobs.

These dependencies are represented in a dependency graph, called the runtime trace, the design flow or simply the flow. The nodes of the graph represent either files or jobs.

In the GUI display of the flow graph, the job nodes are represented by rectangles, while the file nodes are represented by either ovals or hexagons. The graphical representation of the direction of the flow dependency is either from top to bottom (in the vertical view) or from left to right (in the horizontal view).

The flow graph looks like this:


Figure 1. A Small Flow

Files Represent Design Data

When a project is a chip design flow, the design data for a project consists of the collection of all "files" in the design flow. A "file" in FlowTracer has a very broad definition: it is any timestamped named entity in a persistent database.

The main attributes of a FlowTracer file are the:
  • Persistent Database to which the entity belongs
  • Names of the entities in the database
  • Timestamp to indicate when the entity was last modified.
Normally, a file represents a regular UNIX or Windows file:
  • The persistency is provided by the file system itself
  • The database attribute is set to FILE
  • The name of the file is a canonical name, which is related to the full path for the file. The Canonical and Logical File Names is automatically computed by FlowTracer.
  • The timestamp is the modification time of the file, as reported by the file system.

A FlowTracer file may also represent entities other than files, such as a symbolic links, or URL in the internet.

Jobs Represent Actions

A job represents a particular invocation of a program that operates on files. Each job is characterized by three attributes that make it unique:
  • The environment in which it is executed
  • The working directory
  • The command and its arguments
and by a large number of secondary attributes, including the:
and by several computed attributes that cannot be modified, including the:
  • Host name where the job has been executed
  • Execution start time
  • Execution end time
  • Expected duration
  • Exit status

Nodes

Both files and jobs are represented by nodes of the flow graph. They share a number of important attributes. Each node has a VovId, which is a nine-digit string such as "000012345".

Each node also has a status, which indicates whether the node is up-to-date with respect to all its dependencies.

Each node also has a NodeTimestamp. This is different from the timestamp of a file and from the start or end date of a job. The NodeTimestamp represents the last time in which the node has changed status.

Sets of Nodes

A typical flow has thousands of nodes. To ease the management of this complexity, FlowTracer supports the notion of "sets of nodes." Each set has the following attributes:

The name of a set can be any unique string. The selection rule, if given, is a rule that is used to determine the membership of nodes in the set. The time of creation and the owner are managed automatically by FlowTracer.

Sets are used extensively in FlowTracer. Some sets are internal to FlowTracer; they can be recognized by their name, which begins with "System:". For example, the set "System:nodes" is the set of all nodes in the flow.

With the browser interface, you can either browse the set hierarchy or get a complete alphabetical list of all sets. You can also browse the set hierarchy in the FlowTracer GUI console.