Method and apparatus for highly-available processing of I/O...

Electrical computers and digital data processing systems: input/ – Input/output data processing – Input/output access regulation

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C710S036000, C709S229000, C709S238000, C709S239000, C714S006130, C714S048000

Reexamination Certificate

active

06223231

ABSTRACT:

BACKGROUND
1. Field of the Invention
The present invention generally relates to operating systems for fault-tolerant distributed computing systems. More particularly, the present invention relates to a system and method that supports asynchronous I/O requests that can switch to a secondary server if a primary server for the I/O request fails.
2. Related Art
As computer networks are increasingly used to link stand-alone computer systems together, distributed operating systems have been developed to control interactions between multiple computer systems on a computer network. Distributed operating systems generally allow client computer systems to access resources or services on server computer systems. For example, a client computer system may access information contained in a database on a server computer system. However, when the server fails, it is desirable for the distributed operating system to automatically recover from this failure without the user client process being aware of the failure. Distributed computer systems possessing the ability to recover from such server failures are referred to as “highly available systems,” and data objects stored on such highly available systems are referred to as “highly available data objects.”
To function properly, a highly available system must be able to detect a failure of a primary server and reconfigure itself so that accesses to objects on the failed primary server are redirected to backup copies on a secondary server. This process of switching over to a backup copy on the secondary server is referred to as a “failover.”
Asynchronous I/O requests are particularly hard to implement in highly available systems. Asynchronous I/O requests allow a process to initiate an I/O request and continue processing while the I/O request is in progress. In this way, the process continues doing useful work—instead of blocking—while the I/O request is in progress, thereby increasing system performance. Unfortunately, a process typically has little control over when the I/O request completes. This lack of control over the timing of I/O requests can create problems in highly available systems, which must be able to recover from primary server failures that can occur at any time while an asynchronous I/O request is in progress.
What is needed is a highly available system that supports asynchronous I/O requests that can switch to a secondary server if a primary server for the I/O request fails.
SUMMARY
One embodiment of the present invention provides a system that allows an I/O request to proceed when a primary server that is processing the I/O request fails, and a secondary server takes over for the primary server. Upon receiving an I/O request from an application running on a client, the system stores parameters for the I/O request on the client, and sends the I/O request to the primary server. Next, the system allows the application on the client to continue executing while the I/O request is being processed. If the primary server fails after the I/O request is sent to the primary server, but before an I/O request completion indicator returns from the primary server, the system retries the I/O request to the secondary server using the parameters stored on the client. The I/O request may originate from a number of different sources, including a file system access, an I/O request from a database system, and a paging request from a virtual memory system. In a variation on the above embodiment, the act of storing the parameters for the I/O request on the client includes creating a distributed object defined within a distributed object-oriented programming environment, and sending a reference to the distributed object to the primary server to be stored on the primary server. This causes a distributed operating system to keep track of the reference so that if the primary server fails, the reference count on the distributed object drops to zero and the distributed operating system notifies the client that the distributed object is unreferenced. This allows the client to deduce that the primary server has failed.
One aspect of the above embodiment involves locking a page of memory associated with the I/O request before sending the I/O request to the primary server. This ensures that the page remains unmodified in case the I/O request needs to be retried. The page is ultimately unlocked when the I/O request completes and the primary server informs the client of the completion of the I/O request.
Still other embodiments of the present invention will become readily apparent to those skilled in the art from the following detailed description, wherein is shown and described only the embodiments for the invention by way of illustration of the best modes contemplated for carrying out the invention. As will be realized, the invention is capable of other and different embodiments and several of its details are capable of modifications in various obvious respects, all without departing from the spirit and scope of the present invention. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not as restrictive.


REFERENCES:
patent: 4987532 (1991-01-01), Noguchi
patent: 5513314 (1996-04-01), Kandasamy et al.
patent: 5621795 (1997-04-01), Baker et al.
patent: 5633999 (1997-05-01), Clowes et al.
patent: 5818448 (1998-10-01), Katiyar
patent: 5828847 (1998-10-01), Gehr et al.
patent: 6038589 (2000-03-01), Holdsworth et al.
patent: 6101323 (2000-08-01), Quarles et al.
patent: 0 709 779 A2 (1996-01-01), None
patent: 0 709 779 A3 (1996-01-01), None
patent: 0 843 450 A2 (1998-05-01), None
patent: 0 843 450 A3 (1999-02-01), None
“Local Area Network Server Replacement Procedure”, IBM TDB, vol. 38, Issue 1, pp. 235-236, Jan. 1995.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and apparatus for highly-available processing of I/O... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and apparatus for highly-available processing of I/O..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for highly-available processing of I/O... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2434777

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.