Next: Series specific tables
Up: Database representation of JSOC
Previous: Database representation of JSOC
Contents
The JSOC catalog will maintain a set of global tables that define the
structure of data records belonging to each series, and contain
information shared by all record of the series, such as tape storage
group, default online retention time and whether records from the
series should be archived to tape.
An example of what these tables might look like is shown in
Figure 2.
Figure 2:
Example illustrating the structure of the global tables in the JSOC catalog.
 |
- The master_series_table contains a list of all JSOC data
series with descriptions of the series, information about when and by
who they were created, in addition to information about the storage
policy for the series.
- The master_keyword_table contains a list of all keywords
for all JSOC data series. Each row in the table describes things like
the name of the keyword, the data type, default output format and
physical unit of its value and whether the keyword is "inherited" by
following a link to another data record or whether it is stored as a
simple value in the "series table", which is the main table holding
actual the keyword values for all records belonging to it (see
below). Additional information might include whether the database
should maintain an index on this keyword value. This is done to speed
up database queries with conditions involving this keyword value.
- The master_link_table contains a list of all links for
all JSOC data series. Each link has a name and a target series to
which they point, and can be either static, i.e. pointing to a
specific data record in the target series defined by (record number,
version), or it can be a "query link". A "query-link" is can be
represented as (link name, series name, query) tuple. The intention of
the later form is that the link can be bound/resolved dynamically by
evaluating the query condition either at creation time or when the
data record is opened for reading. This can for example be used to
create a link that automatically resolves to the most recent data
record of a data series, e.g. the most recent version of a calibration
table. The syntax used in query links is TBD.
- The master_data_table contains a list of the data
segments for records belonging to JSOC data series. A data segment is
described by its name, type, physical unit, dimensions and the storage
protocol used when accessing the contents of the data segment in
secondary storage.
The master tables above merely describe the structure of data records
belonging to data series and are therefore reasonably small. The
number of rows in these tables is proportional to the number of data
series [which is probably no more than a few hundreds, maybe a
thousand.]. The bulk of the JSOC catalog is a set of tables, one for
each series, containing the actual keyword values for all data
records. In addition, a special sequence table is maintained for each
series. A sequence is a special database table type containing a
counter that can be read and incremented in an atomic operation. It is
used to guarantee that unique record numbers are generated even when
several modules concurrently are creating new records belonging to the
same series.
Next: Series specific tables
Up: Database representation of JSOC
Previous: Database representation of JSOC
Contents
Philip Scherrer
2006-06-17