Dual XPCS for disaster recovery

Share
Save
Discuss
Claim

Share On Facebook Share On Twitter Share By Email
Save Item
Save Item
Add to
my lists

Filing Information

  • Patent Number: US5949970
  • Application Number: US8779681
  • Filing date: 01/07/1997
  • Issue date: 09/07/1999
  • Predicted expiration date: 01/07/2017
Explore Your Innovation Network™ for an introduction to:

Innovation Network Your First Name:
Last Name:
 
Already a member? Sign In
  • U.S. Classifications: 395/182.13  · 711/162  ·
  • International Classifications: G06F 1120 ·
  • International Classifications: 395182.13;182.14 ·
  • Related U.S. Application Data:
    CROSS REFERENCES TO CO-PENDING APPLICATIONS
    The present application is related to U.S. patent application Ser. No. 08/779,689, filed Jan. 7, 1997, entitled "Dual XPCS" for Disaster Recovery in Multi-Host Computer Complexes", which is assigned to the assignee of the present invention and is hereby incorporated by reference.
  • View document at: (opens new window):
    USPTO  ·  PAIR  ·  esp@cenet  ·  Patent Family
    * Related patent documents may or may not exist on these sites
37 Claims, No Drawings


Abstract

A data processing system including a first and second host, a first and second outboard file cache connected to the first host, and a first and second secondary storage device connected to the first host. The system operation includes the first host reading file data from the first or second secondary storage device after the data is cached on both the first and second outboard file caches. File data is updated by writing to both first and second outboard file caches. File data is destaged by writing data from the first outboard file cache only, to first and second secondary storage devices. Failure of a single outboard file cache is handled by the first host not reading and writing to the failed outboard file cache. Site-wide failure of first host, first outboard file cache, and first secondary storage device is handled by establishing communication from second host to both second outboard file cache and second secondary storage device and resuming processing.

References Cited

U.S. Patent Documents

Document NumberAssigneesInventorsIssue/Pub Date
US3685020 COGAR CORP Meade Aug 1972
US3806888 IBM Brickman et al. Apr 1974
US4020466 IBM Corporation Cordi et al. Apr 1977
US4084231 International Business Machines Corporation Capozzi et al. Apr 1978
US4088254 HOOPER JOEL RAY Hooper May 1978
US4136386 International Business Machines Corporation Annunziata et al. Jan 1979
US4298929 International Business Machines Corporation Capozzi Nov 1981
US4314331 Honeywell Information Systems Inc. Porter et al. Feb 1982
US4394733 Sperry Corporation Swenson Jul 1983
US4603380 International Business Machines Corporation Easton et al. Jul 1986
US4646229 AT&T Bell Laboratories Boyle Feb 1987
US4853843 Tektronix, Inc. Ecklund Aug 1989
US4897781 International Business Machines Corporation Chang et al. Jan 1990
US4967353 International Business Machines Corporation Brenner et al. Oct 1990
US5032979 International Business Machines Corporation Hecht et al. Jul 1991
US5043885 International Business Machines Corporation Robinson Aug 1991
US5089958 Vortex Systems, Inc. Horton et al. Feb 1992
US5093787 SIMMONS JOHN C Simmons Mar 1992
US5140685 Unisys Corporation Sipple et al. Aug 1992
US5146573 Ltd. Hitachi Sato et al. Sep 1992
US5163131 Auspex Systems, Inc. Row et al. Nov 1992
US5193162 Unisys Corporation Bordsen et al. Mar 1993
US5202969 Ltd. Hitachi Sato et al. Apr 1993
US5222224 Digital Equipment Corporation Flynn et al. Jun 1993
US5263145 International Business Machines Corporation Brady et al. Nov 1993
US5305389 Digital Equipment Corporation Palmer Apr 1994
US5307484 Chrysler Corporation Baker et al. Apr 1994
US5309451 Digital Equipment Corporation Noya et al. May 1994
US5325509 Zitel Corporation Lautzenheiser Jun 1994
US5353425 Sun Microsystems, Inc. Malamy et al. Oct 1994
US5371855 Unisys Corporation Idleman et al. Dec 1994
US5390318 Digital Equipment Corporation Ramakrishnan et al. Feb 1995
US5404508 Unisys Corporation Konrad et al. Apr 1995
US5418921 International Business Machines Corporation Cortney et al. May 1995
US5488731 International Business Machines Corporation Mendelsohn Jan 1996
US5499354 International Business Machines Corporation Aschoff et al. Mar 1996
US5526511 Unisys Corporation Swenson et al. Jun 1996
US5530799 Taligent Inc. Marsh et al. Jun 1996
US5544343 Unisys Corporation Swenson et al. Aug 1996
US5561795 UNISYS Corporation Sarkar Oct 1996
US5809543 Unisys Corporation Byers et al. Sep 1998

Other Publications

Kohler, "A Survey of Techniques for Synchronization and Recovery in Decentralized Computer Systems", Computing Surveys, vol. 13, No. 2, Jun. 1981, pp. 149-183.
E.I. Cohen et al., 1 "Storage Hierarchies", Systems Journal, vol. 28, No. 1, 1969, pp. 62-76.
Nelson et al., "Caching in the Sprite Network File System", ACM Transactions on Computer Systems, vol. 6, No. 1, Feb. 1988, pp. 134-154, pp. 134-154.
Howard et al., "Scale and Performance in a Distributed File System", ACM Transactions on Computer Systems, vol. 6, No. 1, Feb. 1988, pp. 51-81.
Kaunitz et al., "Audit Trail Compaction for Database Recovery", Communications of the ACM, vol. 27, No. 7, Jul. 1984, pp. 678-683.
Gray, "The Recovery Manager of the System R Database Manager", Computing Surveys, vol. 13, No. 2, Jun. 1981, pp. 223-242.
Verhofstad, "Recovery Techniques for Database Systems", Computing Surveys, Col. 10, No. 2, Jun. 1978, pp. 167-194.

Referenced By

Document NumberAssigneeInventorsIssue/Pub Date
US7373390Hitachi, Ltd.Hideo Tabuchi et al.May 2008
US6615332Hitachi, Ltd.Akira Yamamoto et al.Sep 2003
US7454529Netapp, Inc.Roger Keith Stager et al.Nov 2008
US6408370Hitachi, Ltd.Akira Yamamoto et al.Jun 2002
US7559088NETAPP, Inc.Gavin David Cohen et al.Jul 2009
US6260124International Business Machines CorporationRobert Nelson Crockett et al.Jul 2001
US7437387Netapp, Inc.Gavin David Cohen et al.Oct 2008
US7401198NetAppCraig Anthony Johnston et al.Jul 2008
US7567993Netapp, Inc.Don Alvin Trimmer et al.Jul 2009
US7581118Netapp, Inc.William P. McGovernAug 2009
US6981008Hitachi, Ltd.Hideo Tabuchi et al.Dec 2005
US7216208Hitachi, Ltd.Akira Yamamoto et al.May 2007
US7490103NetApp, Inc.Roger Keith Stager et al.Feb 2009
US6539402Unisys CorporationEllen L. Sorenson et al.Mar 2003
US7130959Hitachi, Ltd.Hideo Tabuchi et al.Oct 2006
US7191303Hitachi, Ltd.Akira Yamamoto et al.Mar 2007
US6389552AT&T CorpBruce Hamilton et al.May 2002
US6772303International Business Machines CorporationRobert Nelson Crockett et al.Aug 2004
US7426617Network Appliance, Inc.Roger Keith Stager et al.Sep 2008
US7325159Network Appliance, Inc.Roger Keith Stager et al.Jan 2008
US7437492Netapp, IncRoger Stager et al.Oct 2008
US7315965Network Appliance, Inc.Roger Keith Stager et al.Jan 2008
US6988176Hitachi, Ltd.Tooru Suzuki et al.Jan 2006
US7055011Hitachi, Ltd.Takashige Iwamura et al.May 2006
US7203865Gateway Inc.Gary E. SullivanApr 2007
US7167902Hitachi, Ltd.Hideo Tabuchi et al.Jan 2007
US7487009Netapp, Inc.Don Alvin Trimmer et al.Feb 2009
US7000046Unisys CorporationThomas P. Cooper et al.Feb 2006
US7082548Fujitsu LimitedManabu NakanoJul 2006
US7305531Hitachi, Ltd.Takashige Iwamura et al.Dec 2007
US6065018International Business Machines CorporationHarley Al Beier et al.May 2000
US7406488NetAppRoger Keith Stager et al.Jul 2008
US7526620Netapp, Inc.William P. McGovernApr 2009
US7558839Netapp, Inc.William P. McGovernJul 2009

Patent Family

The current document is not in a family.

Read Patent

Read patent

View Drawings


Independent Claims | See all claims (37)

  1. 1. A data processing system comprising having a first host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor; a first outboard file cache coupled to the input-output logic section of the host processor and responsive to the file access commands, wherein the first outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files; and a first and a second secondary storage device responsively coupled to the input-output logic section of the first host processor for storing the one or more files, wherein the improvement comprises:a. a second outboard file cache coupled to the input-output logic section of the host processor and responsive to the file access commands, wherein the second outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;b. means for initializing the first and second outboard file caches to contain the same cached data;c. means for initializing the first and second secondary storage devices to contain the same file data;d. means for reading the file data from at least one of the secondary storage devices, including staging the file data from the secondary storage devices to the first outboard file cache if the data is not present in the first outboard file cache;e. means for updating the cached data in the first and second outboard file caches corresponding to the file data in the first and second secondary storage devices, including staging the file data from at least one of the first or second secondary storage devices to the first outboard file cache if the data is not present in the first outboard file cache, including staging the file data from at least of the first or second secondary storage devices to the second outboard file cache if the data is not present in the second outboard file cache;f. means for destaging the cached data in the first and second outboard file caches, including writing the cached data from the first outboard file cache to the first and second secondary storage devices, including not writing the cached data from the second outboard file cache to either first or second secondary storage devices; andg. means for recovering from a failure of one of the outboard file caches, including informing the operating system that the failed outboard file cache is not to have data read from or written to, and resuming data processing.
  2. 2. A data processing system comprising:a. a first host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of said one file, said host processor including an input-output logic section which provides an interface for input of data to said host processor and output of data from said host processor;b. a first outboard file cache coupled to said input-output logic section of said host processor and responsive to said file access commands, wherein said first outboard file cache provides cache storage for said one or more files and includes a cache memory, wherein said cache memory provides random access storage for selectable portions of said one or more files;c. a second outboard file cache coupled to said input-output logic section of said host processor and responsive to said file access commands, wherein said second outboard file cache provides cache storage for said one or more files and includes a cache memory, wherein said cache memory provides random access storage for selectable portions of said one or more files; andd. a first and a second secondary storage device responsively coupled to said input-output logic section of said first host processor for storing said one or more files.
  3. 3. A data processing system comprising:a. a first host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of said one file, said first host processor including an input-output logic section which provides an interface for input of data to said first host processor and output of data from said first host processor;b. a first outboard file cache coupled to said input-output logic section of said first host processor and responsive to said file access commands, wherein said first outboard file cache provides cache storage for said one or more files and includes a cache memory, wherein said cache memory provides random access storage for selectable portions of said one or more files;c. a second outboard file cache coupled to said input-output logic section of said first host processor and responsive to said file access commands, wherein said second outboard file cache provides cache storage for said one or more files and includes a cache memory, wherein said cache memory provides random access storage for selectable portions of said one or more files;d. a first, secondary storage device responsively coupled to said input-output logic section of said first host processor for storing said one or more files;e. a second, secondary storage device responsively coupled to said input-output logic section of said first host processor for storing said one or more files;f. a second host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of said one file, said second host processor including an input-output logic section which provides an interface for input of data to said second host processor and output of data from said second host processor, wherein said second host processor is data connectable to said second secondary storage device, wherein said second host processor is data connectable with said second outboard file cache;g. means for initializing said first and second outboard file caches to contain the same cached data;h. means for initializing said first and second secondary storage devices to contain the same file data;i. means for reading said file data from said first secondary storage device, including staging said file data from said first secondary storage device to said first outboard file cache if said data is not present in said first outboard file cache;j. means for updating said cached data in said first and second outboard file caches corresponding to said file data in said first and second secondary storage devices, including staging said file data from at least one of said secondary storage devices to said first outboard file cache if said data is not present in said first outboard file cache, including staging said file data from at least one of said secondary storage devices to said second outboard file cache if said data is not present in said second outboard file cache;k. means for destaging said cached data in said first and second outboard file caches, including writing said cached data from said first outboard file cache to said first and second secondary storage devices, including not writing said cached data from said second outboard file cache to either first or second secondary storage devices; andl. means for recovering from a failure of one of said outboard file caches, including informing the operating system that the failed outboard file cache is not to have data read from or written to, and resuming data processing.
  4. 5. In a data processing system having:a. a first host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host' processor;b. a first outboard file cache coupled to the input-output logic section of the host processor and responsive to the file access commands, wherein the first outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;c. a second outboard file cache coupled to the input-output logic section of the host processor and responsive to the file access commands, wherein the second outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;d. a first, secondary storage device responsively coupled to the input-output logic section of the first host processor for storing the one or more files;e. a second, secondary storage device responsively coupled to the input-output logic section of the first host processor for storing the one or more files; andf. a second host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor, wherein the second host processor is data connectable to the second secondary storage device, wherein the second host processor is data connectable with the second outboard file cache, a method for updating cached data corresponding to file data in the first and second secondary storage devices with new data comprising the steps:i. if the cached data is not present in the first outboard file cache, staging the file data from either of the secondary storage devices to the first outboard file cache;ii. if the cached data is not present in the second outboard file cache, staging the file data from either of the secondary storage devices to the second outboard file cache;iii. writing the new data to the first outboard file cache; andiv. writing the new data to the second outboard file cache.
  5. 7. In a data processing system having:a. a first host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor;b. a first outboard file cache coupled to the input-output logic section of the host processor and responsive to the file access commands, wherein the first outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;c. a second outboard file cache coupled to the input-output logic section of the first host processor and responsive to the file access commands, wherein the second outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;d. a first, secondary storage device responsively coupled to the input-output logic section of the first host processor for storing the one or more files;e. a second, secondary storage device responsively coupled to the input-output logic section of the first host processor for storing the one or more files; andf. a second host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor, wherein the second host processor is data connectable to the second secondary storage device, wherein the second host processor is data connectable with the second outboard file cache, a method for reading file data corresponding to file data on the first secondary storage device into the first host processor comprising the steps:i. if the cached data is not present in the first outboard file cache, staging the file data from either of the secondary storage devices to the first outboard file cache; andii. reading the data from the first outboard file cache.
  6. 10. In a data processing system having:a. a first host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor;b. a first outboard file cache coupled to the input-output logic section of the host processor and responsive to the file access commands, wherein the first outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;c. a second outboard file cache coupled to the input-output logic section of the host processor and responsive to the file access commands, wherein the second outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;d. a first, secondary storage device responsively coupled to the input-output logic section of the first host processor for storing the one or more files;e. a second, secondary storage device responsively coupled to the input-output logic section of the first host processor for storing the one or more files; andf. a second host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor, wherein the second host processor is data connectable to the second secondary storage device, wherein the second host processor is, data connectable with the second outboard file cache, a method for destaging cached data on the first and second outboard file caches corresponding to file data on the first secondary storage device comprising the steps:i. writing the cached data from the first outboard file cache to the first secondary storage device;ii. writing the cached data from the first outboard file cache to the second secondary storage device; andiii. not writing to the secondary storage the cached data from the second outboard file cache corresponding to the file data on the first and second secondary storage devices.
  7. 12. In a data processing system having:a. a first host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor;b. a first outboard file cache coupled to the input-output logic section of the host processor and responsive to the file access commands, wherein the first outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;c. a second outboard file cache coupled to the input-output logic section of the host processor and responsive to the file access commands, wherein the second outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;d. a first, secondary storage device responsively coupled to the input-output logic section of the first host processor for storing the one or more files;e. a second, secondary storage device responsively coupled to the input-output logic section of the first host processor for storing the one or more files; andf. a second host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor, wherein the second host processor is data connectable to the second secondary storage device, wherein the second host processor is data connectable with the second outboard file cache, a method for initiating a host mode utilizing the first and second outboard file caches comprising:i. setting an indicator that the host mode is changing from single to dual mode;ii. preventing writes to either of the first or second outboard file caches while said indicator is set;iii. destaging all data in the first outboard file cache to the first and second secondary storage devices, if the data is newer than the data in the first and second secondary storage devices;iv. purging all file data in the second outboard file cache; andv. clearing said indicator.
  8. 14. In a data processing system having:a. a first host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor;b. a first outboard file cache coupled to the input-output logic section of the host processor and responsive to the file access commands, wherein the first outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;c. a second outboard file cache coupled to the input-output logic section of the host processor and responsive to the file access commands, wherein the second outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;d. a first, secondary storage device responsively coupled to the input-output logic section of the first host processor for storing the one or more files;e. a second, secondary storage device responsively coupled to the input-output logic section of the first host processor for storing the one or more files; andf. a second host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor, wherein the second host processor is data connectable to the second secondary storage device, wherein the second host processor is data connectable with the second outboard file cache, a method for operating the data processing system to recover from failure of either of the first or second outboard file cache comprising:i. initializing the first and second outboard file caches to contain the same cached data;ii. initializing the first and second secondary storage devices to contain the same file data;iii. reading the file data from the first secondary storage device, including staging the file data from the first secondary storage device to the first outboard file cache if the data is not present in the first outboard file cache;iv. updating the cached data in the first and second outboard file caches corresponding to the file data in the first and second secondary storage devices, including staging the file data from the first or second secondary storage device to the first outboard file cache if the data is not present in the first outboard file cache, including staging the file data from the first or second secondary storage device to the second outboard file cache if the data is not present in the second outboard file cache;v. destaging the cached data in the first and second outboard file caches, including writing the cached data from the first outboard file cache to the first and second secondary storage devices, including not writing the cached data from the second outboard file cache to either first or second secondary storage devices; andvi. recovering from a failure of one outboard file cache, including informing the operating system that the failed outboard file cache is not to have data read from or written to, and resuming data processing.
  9. 16. A data processing system comprising having a first and a second host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, each host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor; a first outboard file cache coupled to the input-output logic section of the first host processor; a second outboard file cache coupled to the input-output logic section of the second host processor and responsive to the file access commands, wherein each outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files; a first secondary storage device responsively coupled to the input-output logic section of the first host processor for storing the one or more files; and a second secondary storage device responsively coupled to the input-output logic section of the second host processor for storing the one or more files, wherein the improvement comprises:a. the second outboard file cache being coupled to the input-output logic section of the first host processor and responsive to the file access commands, wherein the second outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;b. means for initializing the first and second outboard file caches to contain the same cached data;c. means for initializing the first and second secondary storage devices to contain the same file data;d. means for reading the file data from the first secondary storage device, including staging the file data from the first secondary storage device to the first outboard file cache if the data is not present in the first outboard file cache;e. means for the first host updating the cached data in the first and second outboard file caches corresponding to the file data in the first and second secondary storage devices, including the first host writing data to both the first and second outboard file caches;f. means for destaging the cached data in the first and second outboard file caches, including the first host writing the cached data from the first outboard file cache to the first secondary storage device, including the second host writing the cached data from the second outboard file cache to the second secondary storage device; andg. means for recovering from a failure of the first host processor, first outboard file cache, or first secondary storage device including resuming data processing utilizing the second host processor, second outboard file cache, and second secondary storage device.
  10. 17. A data processing system comprising:a. a first host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of said one file, said first host processor including an input-output logic section which provides an interface for input of data to said host processor and output of data from said first host processor;b. a second host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of said one file, said second host processor including an input-output logic section which provides an interface for input of data to said second host processor and output of data from said second host processor;c. a first outboard file cache coupled to said input-output logic section of said first host processor and responsive to said file access commands, wherein said first outboard file cache provides cache storage for said one or more files and includes a cache memory, wherein said cache memory provides random access storage for selectable portions of said one or more files;d. a second outboard file cache coupled to said input-output logic section of said first and second host processors and responsive to said file access commands, wherein said second outboard file cache provides cache storage for said one or more files and includes a cache memory, wherein said cache memory provides random access storage for selectable portions of said one or more files;e. a first secondary storage device responsively coupled to said input-output logic section of said first host processor for storing said one or more files; andf. a second secondary storage device responsively coupled to said input-output logic section of said second host processor for storing said one or more files.
  11. 18. A data processing system comprising:a. a first host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of said one file, said first host processor including an input-output logic section which provides an interface for input of data to said first host processor and output of data from said first host processor;b. a first outboard file cache coupled to said input-output logic section of said first host processor and responsive to said file access commands, wherein said first outboard file cache provides cache storage for said one or more files and includes a cache memory, wherein said cache memory provides random access storage for selectable portions of said one or more files;c. a second outboard file cache coupled to said input-output logic section of said first host processor and responsive to said file access commands, wherein said second outboard file cache provides cache storage for said one or more files and includes a cache memory, wherein said cache memory provides random access storage for selectable portions of said one or more files;d. a first, secondary storage device responsively coupled to said input-output logic section of said first host processor for storing said one or more files;e. a second host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of said one file, said second host processor including an input-output logic section which provides an interface for input of data to said second host processor and output of data from said second host processor, wherein said second host processor is responsively coupled to said second outboard file cache;f. a second, secondary storage device responsively coupled to said input-output logic section of said second host processor for storing said one or more files;g. means for initializing said first outboard file cache and first secondary storage device to contain the same data, in combination, as said second outboard file cache and said second secondary storage device;h. means for reading said file data from said first secondary storace device, including staging said file data from said first secondary storage device to said first outboard file cache if said data is not present in said first outboard file cache;i. means for updating said cached data in said first and second outboard file caches corresponding to said file data in said first and second secondary storage devices, including said first host writing data to said first and second outboard file caches;j. means for destaging said cached data in said first and second outboard file caches, including said first host writing said cached data from said first outboard file cache to said first secondary storage device, including said second host writing said cached data from said second outboard file cache to said second secondary storage device; andk. means for recovering from a failure of said first host, first secondary device, or first outboard file cache, including resuming data processing utilizing said second host, second secondary storage device, and second outboard file cache.
  12. 19. In a data processing system having:a. a first host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor;b. a first outboard file cache coupled to the input-output logic section of the first host processor and responsive to the file access commands, wherein the first outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;c. a second outboard file cache coupled to the input-output logic section of the first host processor and responsive to the file access commands, wherein the second outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;d. a first, secondary storage device responsively coupled to the input-output logic section of the first host processor for storing the one or more files;e. a second, secondary storage device;f. a second host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the second host processor including an input-output logic section which provides an interface for input of data to the second host processor and output of data from the host processor, wherein the second host processor input-output logic section is responsively coupled to the second secondary storage device for storing the one or more files, wherein the second host processor is responsively coupled to the second outboard file cache, wherein the second outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files; a method for updating cached data corresponding to file data in the first and second secondary storage devices with new data comprising the steps:i. writing the new data to the first outboard file cache; andii. writing the new data to the second outboard file cache.
  13. 21. In a data processing system having:a. a first host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor;b. a first outboard file cache coupled to the input-output logic section of the first host processor and responsive to the file access commands, wherein the first outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;c. a second outboard file cache coupled to the input-output logic section of the first host processor and responsive to the file access commands, wherein the second outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;d. a first, secondary storage device responsively coupled to the input-output logic section of the first host processor for storing the one or more files;e. a second host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor, wherein the second host processor is responsively coupled to the second outboard file cache; andf. a second, secondary storage device responsively coupled to the input-output logic section of the second host processor for storing the one or more files; a method for initiating a host mode utilizing the first and second outboard file caches comprising:i. setting an indicator that the host mode is changing from single to dual mode;ii. preventing writes to the first outboard file cache while said indicator is set;iii. destaging all data in the first outboard file cache to the first secondary storage devices, if the data is newer than the data in the first secondary storage device;iv. copying data from the first secondary storage device to the second outboard file cache; andv. clearing said indicator.
  14. 22. In a data processing system having:a. a first host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the first host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor;b. a first outboard file cache coupled to the input-output logic section of the first host processor and responsive to the file access commands, wherein the first outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;c. a second outboard file cache coupled to the input-output logic section of the first host processor and responsive to the file access commands, wherein the second outboard file cache provides cache storage for the one or more files and includes a cache memory, wherein the cache memory provides random access storage for selectable portions of the one or more files;d. a first, secondary storage device responsively coupled to the input-output logic section of the first host processor for storing the one or more files;e. a second host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files or a selected portion of the one file, the host processor including an input-output logic section which provides an interface for input of data to the host processor and output of data from the host processor, wherein the second host processor is coupled to the second outboard file cache; andf. a second, secondary storage device responsively coupled to the input-output logic section of the second host processor for storing the one or more files, a method for operating the data processing system to recover from failure of the first host processor, first outboard file cache, or first secondary storage device comprising:i. initializing the second outboard file cache and second secondary storage device to contain the same data, in combination, as the first outboard file cache and the first secondary storage device;ii. reading the file data from the first secondary storage device, including staging the file data from the first secondary storage device to the first outboard file cache if the data is not present in the first outboard file cache;iii. updating the cached data in the first and second outboard file caches corresponding to the file data in the first and second secondary storage devices;iv. destaging the cached data in the first and second outboard file caches, including the first host writing cached data from the first outboard file cache to the first secondary storage device, including the second host writing cached data from the second outboard file cache to the second secondary storage device; andv. recovering from a failure of the first host processor, first secondary storage device, or first outboard file cache, including resuming data processing utilizing the second host processor, second outboard file cache, and second secondary storage device.
  15. 24. An apparatus for recovering from an error in a data processing system having a host processor which is coupled to a first outboard file cache, a first secondary storage device and a second secondary storage device, the host processor reading and writing data to the first outboard file cache and the first secondary storage device and writing the same data to both the first secondary storage device and the second secondary storage device, the data processing system further including a second outboard file cache, comprising:a. initializing means coupled to the host processor for initializing write communication with the second outboard file cache so that when the host processor writes data to the first outboard file cache, the same data is written to the second outboard file cache; andb. cache recovery means coupled to the host processor for recovering from one or more errors detected in the first outboard file cache by terminating communication with the first outboard file cache and initializing read communication with the second outboard file cache so that the host processor both reads and writes data to the second outboard file cache.
  16. 25. An apparatus for recovering from an error in a data processing system having a first host processor which is coupled to a first outboard file cache, a second outboard file cache, a first secondary storage device and a second secondary storage device, the first host processor having a single outboard cache mode wherein the host processor reads and writes data to either the first outboard file cache or the second outboard file cache but not both, the first host processor having a dual outboard cache mode wherein the first host processor writes data to both the first outboard file cache and the second outboard file cache and reads data from either the first outboard file cache or the second outboard file cache but not both, comprising:a. initializing means coupled to the first host processor to initialize the first host processor into the dual outboard cache mode so that the first host processor writes data to both the first outboard file cache and the second outboard file cache and reads data from the first outboard file cache, and writes the same data to both the first secondary storage device and the second secondary storage device; andb. host recovery means coupled to the first host processor to recover from a failure in the first host processor, said recovery means terminating the dual outboard cache mode and initiating the single outboard cache mode with the second host processor so that the second host processor reads and writes data to the second outboard file cache and the second secondary storage device.
  17. 26. A method for recovering from an error in a data processing system having a host processor which is coupled to and in communication with a first outboard file cache, a first secondary storage device and a second secondary storage device, the host processor reading and writing data to the first outboard file cache and the first secondary storage device and writing the same data to both the first secondary storage device and the second secondary storage device, the data processing system further including a second outboard file cache, the method comprising the steps of:a. initializing write communication with the second outboard file cache so that when the host processor writes data to the first outboard file cache, the same data is written to the second outboard file cache;b. if one or more errors occur in the first outboard file cache, recovering from said one or more errors by terminating communication with the first outboard file cache and initializing read communication with the second outboard file cache so that the host processor both reads and writes data to the second outboard file cache; andc. if one or more errors occur in the second outboard file cache, recovering from said one or more errors by terminating communication with the second outboard file so that the host processor only reads and writes data to the first outboard file cache.
  18. 29. A method for recovering from an error in a data processing system having a host processor which is coupled to and in communication with a first outboard file cache, a second outboard file cache, a first secondary storage device and a second secondary storage device, the host processor having a single outboard cache mode wherein the host processor reads and writes data to either the first outboard file cache or the second outboard file cache but not both, the host processor having a dual outboard cache mode wherein the host processor writes data to both the first outboard file cache and the second outboard file cache and reads data from either the first outboard file cache or the second outboard file cache but not both, the host processor writing the same data to both the first secondary storage device and the second secondary storage device, the method comprising the steps of:a. initializing the dual outboard cache mode so that the host processor writes data to both the first outboard file cache and the second outboard file cache and reads data from the first outboard file cache; andb. if a failure occurs in the first outboard file cache or the second outboard file cache, recovering from said failure by terminating the dual outboard cache mode and initiating the single outboard cache mode so that the host processor only reads and writes data to the first outboard file cache if no errors were detected in the first outboard file cache, or to the second outboard file cache if no errors were detected in the second outboard file cache.
  19. 34. A method for recovering from an error in a data processing system having a first host processor which is coupled to and in communication with a first outboard file cache, a second outboard file cache, a first secondary storage device and a second secondary storage device, the first host processor having a single outboard cache mode wherein the host processor reads and writes data to either the first outboard file cache or the second outboard file cache but not both, the first host processor having a dual outboard cache mode wherein the first host processor writes data to both the first outboard file cache and the second outboard file cache and reads data from either the first outboard file cache or the second outboard file cache but not both, the method comprising the steps of:a. initializing the dual outboard cache mode so that the first host processor writes data to both the first outboard file cache and the second outboard file cache and reads data from the first outboard file cache, and writes the same data to both the first secondary storage device and the second secondary storage device; andb. if a failure occurs in the first host processor, recovering from said failure by terminating the dual outboard cache mode and initiating the single outboard cache mode with the second host processor so that the second host processor reads and writes data to the second outboard file cache and the second secondary storage device.