Persistence is the means by which data is saved and retrieved within
the system. All persisted files are stored on a RAID array to provide
redundant storage. InControl utilizes eXtensible
Markup Language (XML) files to persist data such as telemetry and command
data definitions and properties. XML files were chosen over database
products such as Sybase or Oracle for several reasons. First, the performance
using flat files can be a significant improvement over commercial database
products. Second, versioning of the data in sections such as telemetry
decommutation, alarm limits and derived algorithms such that these sections
can be changed independently is much easier. For example, a new set of
alarm limit XML files may be copied into the appropriate directory and
utilized without changing the rest of that mission’s database file.
That is more difficult to do when all processes are utilizing a database
and a single table within the database must be changed offline and then
moved into the online environment without affecting other processes such
as commanding or decommutation. Also, use of a particular database product
increases system administration costs, adds license costs and possibly
forces a customer to use a product different than their preferred one.
Finally, many sites have a spacecraft fleet consisting of satellites
from many satellite manufacturers. Each manufacturer often delivers a
database and editing tools to go with the satellite. These tools may
already be in a database product such as Sybase or Oracle and the manufacturer
may periodically deliver new databases. Rather than trying to integrate
with multiple database products and data definitions, InControl provides
translators to convert each database into the required XML format. The
translators utilize a GUI to lead the user through the process and allow
differencing of data so that changes may be monitored and approved prior
to use.
In order to update the online database to a new version, a translation
may be done offline on either the whole database or a designated portion.
Once the database files are ready, they may be placed in the appropriate
directories for both the primary and redundant systems and properties
may be updated to point to the new files. The necessary services (such
as telemetry processing and/or command processing) may be recycled on
the redundant server using a warm restart to preserve dynamic data such
as limits or memorized LRVs to switch in the new databases. Only the
mission and processes recycled are affected and the process takes less
than 30 seconds. The same process can then be repeated for the primary
server (with or without first switching control to the redundant server
as desired).
During operations, some data is modified dynamically. This data must
be persisted and distributed to the backup site so that it can be accessed
by the redundant system in the case of failure of the primary system. InControl persists
the following data for that purpose: