SQL/MX 2.x Installation and Management Guide (G06.24+, H06.03+)

Introduction to SQL/MX Database Management
HP NonStop SQL/MX Installation and Management Guide523723-004
1-12
Versioning Issues
Versioning Issues
Versioning is the ability of SQL/MX software to interoperate between different releases.
It enables nodes in an SQL/MX database distributed across an Expand network to run
different releases of the SQL/MX software. It ensures that nodes with compatible
software versions can interoperate and that nodes with incompatible software versions
do not interoperate.
Software versioning provides a range within which you can migrate from earlier to later
software releases and even to fall back from later to earlier releases.
Differences in software versions, then, occur across time (different software releases
on the same node) and space (different software releases on physically separate
nodes). Versioning makes it possible for different but compatible releases to
successfully interoperate. Software can access compatible database objects and
execute compatible plans and modules.
Finally, versioning protects against the consequences of attempted operations between
incompatible versions. If different versions are not compatible, they cannot
interoperate.
Principles of Versioning
Persistent entities, those that persist over time and across releases, are versioned.
They include SQL/MX objects like tables, views, indexes, and compiled modules
as well as executables. Each must have a version identifier that identifies its
software release and can be understood by other SQL/MX releases. Compatible
releases identify the version and then operate on the persistent objects. The
version can determine the format of the object and the set of features supported
with the object. Incompatible releases identify the version of the persistent object,
confirm that they cannot interoperate with it, report an error to this effect, and
gracefully fail the operation. This principle enables SQL/MX software releases to
recognize and use the data formats of earlier releases.
Any transient entity that can cross a node boundary or a software release
boundary must be versioned. This includes message formats. For example, when
messages are sent between the executor on the local node and an ESP of a
different software release on a remote node, the message envelope and all data
structures contained in those messages must be versioned.
Software Versioning
Software versioning enables different product versions of software to interoperate
across nodes and releases. Versioned software components include the SQL/MX
system software version (MXV) and the compiler version.
The MXV provides a primary version identifier for each node and provides an upper
boundary for all other versions that can be accepted by the node. The MXV is a
property of those parts of the SQL/MX software that are installed in public shared