A computer system provides registration of resource for synchronization point processing. Resources include file systems, data bases, and protected conversations. A resource becomes protected by the system when it is registered in the application's execution environment. The execution environment includes but is not exclusive to the interactive environment. Accordingly the invention provides an efficient and uniform method for identification of protected resources. The registration facility is separate from the application. Thus, the users of applications, application program developers, system administrators and operators need not have to consider or design a registration facility but only involve the one provided. A protected resource manager, through its adapter, can modify, at any time, the registration information, either by adding missing information or by changing the existing information. A resource registers only for the work unit in which it wishes to participate. An application could have several work units. A resource can register for two work units in the application or two resources can register for a single work unit or both.
A method and system are disclosed for transferring a backup copy of designated datasets stored in a plurality of storage subsystems to a host system via a data channel during concurrent execution of an application. Upon receiving a request for a backup copy, execution of an application is temporarily suspended. A dataset logical-to-physical storage system address concordance for the designated datasets is formed and execution of the application is resumed thereafter. Any application initiated updates to affected portions of the designated datasets which occur prior to generation of a backup copy of the affected portions of the datasets are processed by buffering the updates, copying the affected portions to storage subsystem memory, updating the address concordance and writing the updates to the affected portions of the dataset. The remaining portions of the designated datasets are then copied to storage system memory from the storage subsystem on an asynchronous basis and an attention signal is transmitted to the host system when a lower threshold level is achieved. If an upper threshold level within the storage subsystem memory is achieved, the asynchronous copying of the designated datasets is temporarily suspended. The stored portions of the designated datasets are then transferred from storage subsystem memory to the host system at channel speeds, greatly enhancing the efficiency of data transfer.
A transaction network in which, in appropriate cases, a transaction is allowed to complete at each node and new work to commence, before all transaction resources at the node actually complete a syncpoint operation. This desirable result is obtained without the risk of unreported database corruption. At each node in response to a prepare to commit syncpoint command from a parent node, the node in question determines if it or any of its descendant nodes can make a unilateral heuristic decision to commit or backout the transaction irrespective of whether or not the final syncpoint command is to commit or backout. Each node informs its parent node that it is reliable or unreliable. Reliable means that neither this node nor any of its descendant nodes can make a unilateral heuristic decision. Unreliable means that this node or one or more of the descendant nodes may make such a unilateral decision. If a node is reliable, the transaction is released at the node after receiving and propagating to descendant nodes the final commit or backout command and before completion or acknowledgement of completion of the commit or backout command by the node or any of its descendant nodes. If the node is unreliable, then it waits for acknowledgement of completion of the commit or backout syncpoint operation at all unreliable nodes, including itself, before releasing the transaction at the node.
A computer system and process efficiently provides resource recovery for a failure during a commit procedure. An application is run on a processor and requests a work operation involving a resource such as a protected conversation with another application in a different real machine. A commit procedure is begun for the work request, and if the commit procedure fails before completion, the following steps are taken to optimize the use of one or both of the applications. At some time after the commit procedure fails, a return code is sent to at least the application that initiated the commit indicating the result of the application commit order and that the application can continue to run and does not have to wait for resynchronization (recovery). Then, while the initiating application continues to run and do other useful work, resynchronization is implemented in parallel, asynchronously.
A two-phase commit protocol for a distributed transaction processing system employs the presumed-commit configuration, with the exception that the new presumed-commit protocol coordinator needs to force-write only a "commit" log record for committed transactions, not the previous force writing of two log records. In order to provide information needed to allow the coordinator to answer inquiries from subordinate processes following a crash or loss of communications, a technique for circumscribing the set of indeterminate transactions is employed. The transactions are numbered in increasing order, identified by a transaction ID (T.sub.-- ID). The commit protocol is not allowed to begin unless the transaction ID of the committing transaction is within some preselected range of numbers starting from the highest-numbered stably-recorded transaction ID. That is, if the transaction number is too far removed from the highest TID of a stably stored log record (written to disk storage and able to survive a crash), then log records are written to disk until this condition hold. This may require writing to a disk log record for the committing transaction. Most commit transactions can, however, proceed without waiting for a disk write (forced log), and so performance is improved. A technique is disclosed for circumscribing the set of indeterminate transactions (not shown whether they committed, aborted or never started) so that information is small. It must be "permanently" retained, but the coordinator can store some of it in a cache (volatile memory) to answer inquiries.
Dispatching improvements in operating systems are described for multiprogrammed data processing systems. A common priority dispatching mechanism for applications that span multiple address spaces in multi-address space operating systems is provided where multiple, dispatchable operating system processes operating in different address spaces but on behalf of a common application can all be dispatched at the same priority of the application rather than at the priority of the particular address space in which each individual process operates. The system further enables individual processes of a distributed application, that operate under different host operating systems in a connected complex to run at the common priority of the distributed application. High priority processes are given the capability to avoid becoming blocked by low priority processes for extended periods of time when serialization must occur on common resources in the system.