Claims
- 1. A method in a data storage system for reading stored data from said data storage system, where said data storage system comprises M data storage drives and an associated cache, where data and calculated parity are striped across said M data storage drives, where a stripe comprises a plurality of sectors on each of said M data storage drives, said method comprising the steps of:requesting data from said data storage system; determining if said requested data resides in a cache and if said requested data sequentially follows a plurality of sectors also residing in said cache; fetching only said requested data into said cache if it is determined that said requested data does not reside in said cache and said requested data does not sequentially follow a plurality of sectors also residing in said cache; and fetching a predefined block of sectors including said requested data from said M data storage drives into said cache if it is determined that said requested data does not reside in said cache and said requested data does sequentially follow a plurality of sectors also residing in said cache, where said fetched predefined block of sectors sequentially follows said requested data.
- 2. The method for reading stored data from said data storage system according to claim 1, further comprising the step of:transmitting said requested data from said cache to a host.
- 3. The method for reading stored data from said data storage system according to claim 1, wherein said step of fetching a predefined block of sectors including said requested data from said M data storage drives into said cache if it is determined that said requested data does not reside in said cache and said requested data does sequentially follow a plurality of sectors residing in said cache, where said fetched predefined block of sectors sequentially follows said requested data, further comprises the steps of:fetching all sectors of an N logical data stripe unit which includes said requested data if said plurality of sectors residing in said cache which said requested data sequentially follows are sectors from an N−1 logical data stripe unit; and fetching all sectors of N and N+1 physical data stripe units where said N data stripe unit includes said requested data if said plurality of sectors residing in said cache which said requested data sequentially follows are sectors from an N−1 physical data stripe unit.
- 4. A method in a RAID data storage system for reading stored data from said RAID data storage system, where said RAID data storage system comprises M data storage drives and an associated cache, where data and calculated parity are striped across said M data storage drives, where a stripe comprises a plurality of sectors on each of said M data storage drives, said method comprising the steps of:requesting data from said RAID data storage system; determining if said requested data resides in a cache and if said requested data sequentially follows a plurality of sectors also residing in said cache; fetching only said requested data into said cache if it is determined that said requested data does not reside in said cache and said requested data does not sequentially follow a plurality of sectors also residing in said cache; and fetching a predefined block of sectors including said requested data from said M data storage drives into said cache if it is determined that said requested data does not reside in said cache and said requested data does sequentially follow a plurality of sectors also residing in said cache, where said fetched predefined block of sectors sequentially follows said requested data.
- 5. The method for reading stored data from said RAID data storage system according to claim 4, further comprising the step of:transmitting said requested data from said cache to a host.
- 6. The method for reading stored data from said RAID data storage system according to claim 4, wherein said step of fetching a predefined block of sectors including said requested data from said M data storage drives into said cache if it is determined that said requested data does not reside in said cache and said requested data does sequentially follow a plurality of sectors residing in said cache, where said fetched predefined block of sectors sequentially follows said requested data, further comprises the steps of:fetching all sectors of an N logical data stripe unit which includes said requested data if said plurality of sectors also residing in said cache which said requested data sequentially follows are sectors from an N−1 logical data stripe unit; and fetching all sectors of N and N+1 physical data stripe units where said N data stripe unit includes said requested data if said plurality of sectors also residing in said cache which said requested data sequentially follows are sectors from an N−1 physical data stripe unit.
- 7. A system in a data storage system for reading stored data from said data storage system, where said data storage system comprises M data storage drives and an associated cache, where data and calculated parity are striped across said M data storage drives, where a stripe comprises a plurality of sectors on each of said M data storage drives, said system comprises:means for requesting data from said data storage system; means for determining if said requested data resides in a cache and if said requested data sequentially follows a plurality of sectors also residing in said cache; means for fetching only said requested data into said cache if it is determined that said requested data does not reside in said cache and said requested data does not sequentially follows a plurality of sectors also residing in said cache; and means for fetching a predefined block of sectors including said requested data from said M data storage drives into said cache if it is determined that said requested data does not reside in said cache and said requested data does sequentially follow a plurality of sectors also residing in said cache, where said fetched predefined block of sectors sequentially follows said requested data.
- 8. The system for reading stored data from said data storage system according to claim 7, said system further comprising:means for transmitting said requested data from said cache to a host.
- 9. The system for reading stored data from said data storage system according to claim 7, wherein said means for fetching a predefined block of sectors including said requested data from said M data storage drives into said cache if it is determined that said requested data does not reside in said cache and said requested data does sequentially follow a plurality of sectors residing in said cache, where said fetched predefined block of sectors sequentially follows said requested data, further comprises:means for fetching all sectors of an N logical data stripe unit which includes said requested data if said plurality of sectors also residing in said cache which said requested data sequentially follows are sectors from an N−1 logical data stripe unit; and means for fetching all sectors of N and N+1 physical data stripe units where said N data stripe unit includes said requested data if said plurality of sectors also residing in said cache which said requested data sequentially follows are sectors from an N−1 physical data stripe unit.
- 10. A system in a RAID data storage system for reading stored data from said RAID data storage system, where said RAID data storage system comprises M data storage drives and an associated cache, where data and calculated parity are striped across said M data storage drives, where a stripe comprises a plurality of sectors on each of said M data storage drives, said system comprises:means for requesting data from said RAID data storage system; means for determining if said requested data resides in a cache and if said requested data sequentially follows a plurality of sectors also residing in said cache; means for fetching only said requested data into said cache if it is determined that said requested data does not reside in said cache and said requested data does not sequentially follow a plurality of sectors also residing in said cache; and means for fetching a predefined block of sectors including said requested data from said M data storage drives into said cache if it is determined that said requested data does not reside in said cache and said requested data does sequentially follow a plurality of sectors also residing in said cache, where said fetched predefined block of sectors sequentially follows said requested data.
- 11. The system for reading stored data from said RAID data storage system according to claim 10, said system further comprising:means for transmitting said requested data from said cache to a host.
- 12. The system for reading stored data from said RAID data storage system according to claim 10, wherein said means for fetching a predefined block of sectors including said requested data from said M data storage drives into said cache if it is determined that said requested data does not reside in said cache and said requested data does sequentially follow a plurality of sectors residing in said cache, where said fetched predefined block of sectors sequentially follows said requested data, further comprises:means for fetching all sectors of an N logical data stripe unit which includes said requested data if said plurality of sectors also residing in said cache which said requested data sequentially follows are sectors from an N−1 logical data stripe unit; and means for fetching all sectors of N and N+1 physical data stripe units where said N data stripe unit includes said requested data if said plurality of sectors also residing in said cache which said requested data sequentially follows are sectors from an N−1 physical data stripe unit.
- 13. A program product for fetching data into a cache associated with a data storage system, where said data storage system comprises M data storage drives and an associated cache, where data and calculated parity are striped across said M data storage drives, where a stripe comprises a plurality of sectors on each of said M data storage drives, said program product comprising:a data processing system usable medium; and a data fetching program encoded within said data processing system usable medium that, in response to receiving a request for data from said data storage system, determines if said requested data resides in a cache and if said requested data sequentially follows a plurality of sectors also residing in said cache, fetches only said requested data into said cache if it is determined that said requested data does not reside in said cache and said requested data does not sequentially follow a plurality of sectors also residing in said cache; and fetches a predefined block of sectors including said requested data from said M data storage drives into said cache if it is determined that said requested data does not reside in said cache and said requested data does sequentially follow a plurality of sectors also residing in said cache, where said fetched predefined block of sectors sequentially follows said requested data.
- 14. The program product of claim 13, wherein said data fetching program transmits said requested data from said cache to a host.
- 15. The program product of claim 13, wherein said data fetching program:fetches all sectors of an N logical data stripe unit which includes said requested data if said plurality of sectors also residing in said cache which said requested data sequentially follows are determined to be sectors from an N−1 logical data stripe unit; fetches all sectors of N and N+1 physical data stripe units where said N data stripe unit includes said requested data if said plurality of sectors also residing in said cache which said requested data sequentially follows are determined to be sectors from an N−1 physical data stripe unit.
CROSS-REFERENCE TO RELATED APPLICATIONS
The present application is related to the following copending applications, which are filed on even date herewith and incorporated herein by reference:
(1) U.S. patent application Ser. No. 09/253,413; and
(2) U.S. patent application Ser. No. 09/253,414.
US Referenced Citations (5)
| Number |
Name |
Date |
Kind |
|
5600816 |
Oldfield et al. |
Feb 1997 |
|
|
5734859 |
Yorimitsu et al. |
Mar 1998 |
|
|
5787472 |
Dan et al. |
Jul 1998 |
|
|
5809560 |
Schneider |
Sep 1998 |
|
|
5835940 |
Yorimitsu et al. |
Nov 1998 |
|