Patent EP0355454A2 successfully refreshed from Google Patents.
Patent EP0075769A1 successfully refreshed from Google Patents.
Patent US6334168B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6334168B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and system for updating data in a data storage system

Assignee: International Business Machines Corp
•
Filing: 1999-02-19
•
Granted: 2001-12-25
•
Expires: 2019-02-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system for a data storage system to update stored data with received data in a cache associated with the data storage system where the data storage system comprises N data storage drives is provided, where data and calculated parity are striped across the N data storage drives. An associated cache is provided with the data storage system for receiving data. The data in the cache is periodically examined to determine if the data includes all sequential data contained within a complete stripe within the data storage system. Data is fetched from the N data storage drives into the cache and the parity for the stripe is calculated by logically combining the received data in the cache and fetched data from the data storage drives if the cache is determined not to include all sequential data contained within the complete stripe. Alternatively, the parity for the stripe is calculated by logically combining only data within the cache for the stripe, if data in the cache is determined to include all sequential data contained within a complete stripe, thereby minimizing the number of input/output operations required to update data.

Inventors

  • 👤 Shah Mohammad Rezaul Islam
  • 👤 Linda Ann Riedle
  • 👤 Philip Anthony Richardson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 05:41
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/08; G06F11/10; G06F11/1076; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0866; G06F2211/00; G06F2211/10; G06F2211/1002; G06F2211/1009; G06F2211/1095

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 229 words
A method in a data storage system for updating stored data with received data in a cache associated with said data storage system, where said data storage system comprises N data storage drives, where data and calculated parity are striped across said N data storage drives for a stripe, said method comprising the steps of: receiving data into a cache associated with said data storage system; determining if said received data in said cache includes sequential data for a plurality of complete stripes; calculating parity for each of said plurality of complete stripes by logically combining only said received data for each of said plurality of complete stripe if said data is sequential for each of said plurality of complete stripes; coalescing said received data for each of said plurality of complete stripes and said calculated parity for each of said plurality of complete stripes; calculating parity for a particular stripe by logically XORing said received data and fetched data from said data storage system if said cache is not determined to include all sequential data contained within said particular stripe, where fetched data is fetched from said N data storage drives into said cache; coalescing said particular stripe with said plurality of complete stripes; and writing said coalesced data to each of said N data storage drives, such that input/output operations within said data storage system are minimized.
Claim 2
Independent Claim 229 words
A method in a data storage system for updating stored data with received data in a cache associated with said data storage system, where said data storage system comprises N data storage drives, where data and calculated parity are striped across said N data storage drives for a stripe, said method comprising the steps of: receiving data into a cache associated with said data storage system; determining if said received data in said cache includes sequential data for a plurality of complete stripes; calculating parity for each of said plurality of complete stripes by logically combining only said received data for each of said plurality of complete stripe if said data is sequential for each of said plurality of complete stripes; coalescing said received data for each of said plurality of complete stripes and said calculated parity for each of said plurality of complete stripes; calculating parity for a particular stripe by logically XORing said received data and fetched data from said data storage system if said cache is not determined to include all sequential data contained within said particular stripe, where fetched data is fetched from said N data storage drives into said cache; coalescing said particular stripe with said plurality of complete stripes; and writing said coalesced data to each of said N data storage drives, such that input/output operations within said data storage system are minimized.
Claim 3
Dependent Claim 86 words
A method in a data storage system for updating stored data with received data in a cache associated with said data storage system according to claim 1 , said method further comprising the steps of: dividing the cache into a plurality of pages; storing a predefined unit of said received data in each page of the cache; and associating a position in said N data storage drives with each said page of received data according to the stored data position which the received data will update.
Claim 4
Dependent Claim 62 words
A method in a data storage system for updating stored data with received data in a cache associated with said data storage system according to claim 1 , said step of calculating said parity for each of said plurality of complete stripes, further comprising the step of: XORing said received data within said cache for each of said plurality of complete stripes.
Claim 5
Independent Claim 238 words
A system in a data storage system for updating stored data with received data in a cache associated with said data storage system, where said data storage system comprises N data storage drives, where data and calculated parity are striped across said N data storage drives for a stripe, said system comprising: a cache associated with said data storage system for receiving data; means for determining if said received data in said cache includes sequential data for a plurality of complete stripes; means for calculating parity for each of said plurality of complete stripes by logically combining only said received data for each of said plurality of complete stripe if said data is sequential for each of said plurality of complete stripes; means for coalescing said received data for each of said plurality of complete stripes and said calculated parity for each of said plurality of complete stripes; means for calculating parity for a particular stripe by logically XORing said received data and fetched data from said data storage system if said cache is not determined to include all sequential data contained within said particular stripe, where fetched data is fetched from said N data storage drives into said cache; means for coalescing said particular stripe with said plurality of complete stripes; and means for writing said coalesced data to each of said N data storage drives, such that input/output operations within said data storage system are minimized.
Claim 6
Independent Claim 238 words
A system in a data storage system for updating stored data with received data in a cache associated with said data storage system, where said data storage system comprises N data storage drives, where data and calculated parity are striped across said N data storage drives for a stripe, said system comprising: a cache associated with said data storage system for receiving data; means for determining if said received data in said cache includes sequential data for a plurality of complete stripes; means for calculating parity for each of said plurality of complete stripes by logically combining only said received data for each of said plurality of complete stripe if said data is sequential for each of said plurality of complete stripes; means for coalescing said received data for each of said plurality of complete stripes and said calculated parity for each of said plurality of complete stripes; means for calculating parity for a particular stripe by logically XORing said received data and fetched data from said data storage system if said cache is not determined to include all sequential data contained within said particular stripe, where fetched data is fetched from said N data storage drives into said cache; means for coalescing said particular stripe with said plurality of complete stripes; and means for writing said coalesced data to each of said N data storage drives, such that input/output operations within said data storage system are minimized.
Claim 7
Dependent Claim 89 words
A system in a data storage system for updating stored data with received data in a cache associated with said data storage system according to claim 4 , said system further comprising: means for dividing the cache into a plurality of pages; means for storing a predefined unit of said received data in each page of the cache; and means for associating a position in said N data storage drives with each said page of received data according to the stored data position which the received data will update.
Claim 8
Dependent Claim 65 words
A system in a data storage system for updating stored data with received data in a cache associated with said data storage system according to claim 4 , said means for calculating said parity for each of said plurality of complete stripes further comprising: an XOR controller for performing said calculation by logically combining said received data for each of said plurality of complete stripes.
Claim 9
Independent Claim 238 words
A method in a RAID data storage system for updating stored data with received data in a cache associated with said RAID data storage system, where said RAID data storage system comprises N data storage drives, where data and calculated parity are striped across said N RAID data storage drives for a stripe, said method comprising the steps of: receiving data into a cache associated with said RAID data storage system; determining if said received data in said cache includes sequential data for a plurality of complete stripes; calculating parity for each of said plurality of complete stripes by logically combining only said received data for each of said plurality of complete stripe if said data is sequential for each of said plurality of complete stripes; coalescing said received data for each of said plurality of complete stripes and said calculated parity for each of said plurality of complete stripes; calculating parity for a particular stripe by logically XORing said received data and fetched data from said RAID data storage system if said cache is not determined to include all sequential data contained within said particular stripe, where fetched data is fetched from said N RAID data storage drives into said cache; coalescing said particular stripe with said plurality of complete stripes; and writing said coalesced data to each of said N RAID data storage drives, such that input/output operations within said RAID data storage system are minimized.
Claim 10
Independent Claim 238 words
A method in a RAID data storage system for updating stored data with received data in a cache associated with said RAID data storage system, where said RAID data storage system comprises N data storage drives, where data and calculated parity are striped across said N RAID data storage drives for a stripe, said method comprising the steps of: receiving data into a cache associated with said RAID data storage system; determining if said received data in said cache includes sequential data for a plurality of complete stripes; calculating parity for each of said plurality of complete stripes by logically combining only said received data for each of said plurality of complete stripe if said data is sequential for each of said plurality of complete stripes; coalescing said received data for each of said plurality of complete stripes and said calculated parity for each of said plurality of complete stripes; calculating parity for a particular stripe by logically XORing said received data and fetched data from said RAID data storage system if said cache is not determined to include all sequential data contained within said particular stripe, where fetched data is fetched from said N RAID data storage drives into said cache; coalescing said particular stripe with said plurality of complete stripes; and writing said coalesced data to each of said N RAID data storage drives, such that input/output operations within said RAID data storage system are minimized.
Claim 11
Dependent Claim 89 words
A method in a RAID data storage system for updating stored data with received data in a cache associated with said RAID data storage system according to claim 7 , said method further comprising the steps of: dividing the cache into a plurality of pages; storing a predefined unit of said received data in each page of the cache; and associating a position in said N RAID data storage drives with each said page of received data according to the stored data position which the received data will update.
Claim 12
Dependent Claim 64 words
A method in a RAID data storage system for updating stored data with received data in a cache associated with said RAID data storage system according to claim 7 , said step of calculating said parity for each of said plurality of complete stripes, further comprising the step of: XORing said received data within said cache for each of said plurality of complete stripes.
Claim 13
Independent Claim 248 words
A system in a RAID data storage system for updating stored data with received data in a cache associated with said RAID data storage system, where said RAID data storage system comprises N RAID data storage drives, where data and calculated parity are striped across said N RAID data storage drives for a stripe, said system comprising: a cache associated with said RAID data storage system for receiving data; means for determining if said received data in said cache includes sequential data for a plurality of complete stripes; means for calculating parity for each of said plurality of complete stripes by logically combining only said received data for each of said plurality of complete stripe if said data is sequential for each of said plurality of complete stripes; means for coalescing said received data for each of said plurality of complete stripes and said calculated parity for each of said plurality of complete stripes; means for calculating parity for a particular stripe by logically XORing said received data and fetched data from said RAID data storage system if said cache is not determined to include all sequential data contained within said particular stripe, where fetched data is fetched from said N RAID data storage drives into said cache; means for coalescing said particular stripe with said plurality of complete stripes; and means for writing said coalesced data to each of said N RAID data storage drives, such that input/output operations within said RAID data storage system are minimized.
Claim 14
Independent Claim 248 words
A system in a RAID data storage system for updating stored data with received data in a cache associated with said RAID data storage system, where said RAID data storage system comprises N RAID data storage drives, where data and calculated parity are striped across said N RAID data storage drives for a stripe, said system comprising: a cache associated with said RAID data storage system for receiving data; means for determining if said received data in said cache includes sequential data for a plurality of complete stripes; means for calculating parity for each of said plurality of complete stripes by logically combining only said received data for each of said plurality of complete stripe if said data is sequential for each of said plurality of complete stripes; means for coalescing said received data for each of said plurality of complete stripes and said calculated parity for each of said plurality of complete stripes; means for calculating parity for a particular stripe by logically XORing said received data and fetched data from said RAID data storage system if said cache is not determined to include all sequential data contained within said particular stripe, where fetched data is fetched from said N RAID data storage drives into said cache; means for coalescing said particular stripe with said plurality of complete stripes; and means for writing said coalesced data to each of said N RAID data storage drives, such that input/output operations within said RAID data storage system are minimized.
Claim 15
Dependent Claim 92 words
A system in a RAID data storage system for updating stored data with received data in a cache associated with said RAID data storage system according to claim 10 , said system further comprising: means for dividing the cache into a plurality of pages; means for storing a predefined unit of said received data in each page of the cache; and means for associating a position in said N RAID data storage drives with each said page of received data according to the stored data position which the received data will update.
Claim 16
Dependent Claim 67 words
A system in a RAID data storage system for updating stored data with received data in a cache associated with said RAID data storage system according to claim 10 , said means for calculating said parity for each of said plurality of complete stripes further comprising: an XOR controller for performing said calculation by logically combining said received data for each of said plurality of complete stripes.
Claim 17
Dependent Claim 232 words
A program product for updating stored data with received data in a cache associated with a data storage system, where said data storage system comprises N data storage drives, said program product comprising: a data processing system usable medium; a data updating program encoded within said data processing system usable medium that, in response to receiving data into said cache determines if said received data in said cache includes sequential data for a plurality of complete stripes, calculates parity for each of said plurality of complete stripes by logically combining only said received data for each of said plurality of complete stripe in response to determining that said data in said cache is sequential for each of said plurality of complete stripes, coalesces said received data for each of said plurality of complete stripes and said calculated parity for each of said plurality of complete stripes, calculates parity for a particular stripe by logically XORing said received data and fetched data from said data storage system in response to determining that said cache does not include all sequential data contained within said particular stripe, where fetched data is fetched from said N data storage drives into said cache; coalescing said particular stripe with said plurality of complete stripes; and writes said coalesced data to each of said N data storage drives, such that input/output operations within said data storage system are minimized.
Claim 18
Dependent Claim 232 words
A program product for updating stored data with received data in a cache associated with a data storage system, where said data storage system comprises N data storage drives, said program product comprising: a data processing system usable medium; a data updating program encoded within said data processing system usable medium that, in response to receiving data into said cache determines if said received data in said cache includes sequential data for a plurality of complete stripes, calculates parity for each of said plurality of complete stripes by logically combining only said received data for each of said plurality of complete stripe in response to determining that said data in said cache is sequential for each of said plurality of complete stripes, coalesces said received data for each of said plurality of complete stripes and said calculated parity for each of said plurality of complete stripes, calculates parity for a particular stripe by logically XORing said received data and fetched data from said data storage system in response to determining that said cache does not include all sequential data contained within said particular stripe, where fetched data is fetched from said N data storage drives into said cache; coalescing said particular stripe with said plurality of complete stripes; and writes said coalesced data to each of said N data storage drives, such that input/output operations within said data storage system are minimized.
Claim 19
Dependent Claim 55 words
The program product of claim 13 , wherein said data updating program: stores a predefined unit of said received data in each page of the cache; and associates a position in said N data storage drives with each said page of received data according to the stored data position which the received data will update.

References Cited (Backward Citations)

US5408644A Cited
US5794069A Cited
US6018778A Cited
US6052799A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-12-24 2005-06-25 2005-12-25 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-12-24 2009-06-25 2009-12-25 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-12-24 2013-06-25 2013-12-25 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag