Databases
Design files may reside in different databases. The most common database is the filesystem. VOV offers a generic database interface in the sense that it traces dependencies between named entities residing in persistent databases.
VOV requires a method to obtain the timestamp of each named entity in the database.
For example, the most common database is called "FILE", its entities are files, and
the method to obtain the timestamp of a file is the OS call stat()
.
VOV supports multiple databases. Some are supported internally. Others must be supported externally by special clients called database proxies, which provide the server with the needed timestamp for the entities in a database.
Check the Databases page to see the list of databases supported by the current project.
Internally Supported Databases
- FILE
- The entities are files. The names are logical canonical path names. The timestamp is the modification time of the file. If a file does not exist, the timestamp is 0.
- FILEX
- The entities are files, but in this case only the existence of the file,
is important; the timestamp is not important. The names are logical
canonical path names. If the file exists, the timestamp is fixed in the
distant past. If a file does not exist, the timestamp is 0. To specify a file where you just care about the existence of the file, regardless of its timestamp, the syntax is different whether the file is an input or an output:
FDL Instrumentation Input I -db FILEX myfile D FILE VovInput -db FILEX myfile Output O -db FILEX -ignore_timestamp myfile D FILE VovOutput -db FILEX -ignore_timestamp myfile - GLOB
- The entities in this database are "glob expressions." The syntax is the one used by the glob procedure in Tcl and by "globbing" in C-shell, that is "*" stands for any sequence of zero or more characters and "?" stands for any single character. If the expression can be expanded into a set of files, the timestamp of the entity is the timestamp of the most recent file. If the set of files corresponding to the expression is empty, the entity is considered non-existing and its timestamp is 0.
- JOBSTATUS
- This database represents the status of a job. The name of the place has the form TYPE/JOBID where TYPE is one of DONE, FAIL, or SUCCESS and JOBID is the id of a job. The timestamp of the place is a fixed timestamp in the past and never changes. What changes is the status of the place depending on the status of the job it is attached to. For more information on this database, please refer to The JOBSTATUS Database.
- LINK
- This database behaves like the FILE database, except that the entities
are symbolic links. An easy way to add links to the flow is to use the
option -links in the calls to VovInput and VovOutput
(either encapsulation or
instrumentation)
... VovInput -db LINK nameOfLink VovInput -links someInputFile VovOutput -links someOutputFile ...
- PHANTOM
- This database behaves like the FILE database, except that the timestamp of a missing file is, by convention, a time in the distant past (by Computer Science standards), i.e. sometime in the year 1970. This database is useful to represent situations where a job is sensitive to the fact that a file may exist or not, for example when a tool uses a search path to locate files.
- VOVSETS
- The entities in this database are sets of nodes. The timestamp of the entity is the timestamp of the set creation. Each set in the trace has a name and a timestamp.
- ZIP
- The entities in this database are members in an ZIP archive. The name of
the entity has the form
ARCHIVENAME(MEMBERNAME)
.