Availability Guide for Application Design
What Is Application Availability?
Availability Guide for Application Design—525637-004
1-12
Support For Dynamic Linked Libraries
against either disk. For random reads, access is faster because the nearest head to
the data is used. For sequential reads, access is faster because the heads alternate
access. Because, in a typical system, read operations outnumber write operations by
about 10 to 1, these features improve performance significantly while enhancing
availability.
The NonStop operating system supports three levels of process availability:
•
The immediate persistence level means that if a process stops, some other
process is immediately notified so that the process can be immediately restarted.
By comparison, some other operating systems have a concept of persistence done
through polling; such techniques can take up to a minute to restart a failed process.
Server processes in a Pathway server class are an example of immediate
persistence processes.
•
The higher initialized persistence level means that a backup process is started on
an alternate processor and initialized. If the primary process fails, the backup
process takes over in a preinitialized state.
A TACL process run as a process pair is an example of an initialized persistent
process.
•
At the highest level, process pairs with continual checkpointing have a backup
process whose context is periodically updated by information checkpointed from
the primary process. Such a process can be designed to take over from a failed
primary process without any loss of context.
The DP2 disk process is an example of a process pair with continual
checkpointing.
Support For Dynamic Linked Libraries
The introduction of support for dynamic linked libraries (DLLs) at G06.20 for TNS/R
and all the H-Series (TNS/E) systems should allow application developers to further
modularize their code and therefore make changes to applications without requiring
downtime for the process or the system. This could make a substantial improvement to
overall system availability.
Currently, application programs contain libraries and other object code that are linked
statically before they are loaded. If you need to make a change to any part of that code
you must reload the whole process.
If you use DLLs, however, you can make a change to a single DLL at any time without
requiring a reload. DLLs can be dynamically loaded (and unloaded) during process
execution with the use of rld (the run-time loader) and the NonStop operating
system.
In many respects DLLs function in the same way as shared runtime libraries (SRLs);
for example, a single copy of a DLL or SRL in physical memory can be shared among
multiple processes and each appearance has its own instance data. However, there
are many advantages to using DLLs: