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

System for concurrent cache data access by maintaining and selectively merging multiple ranked part copies

Assignee: Seagate Systems UK Ltd
•
Filing: 1995-12-11
•
Granted: 1998-06-30
•
Expires: 2015-12-11
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system for providing multiple hosts with concurrent access to cached data by selectively generating, maintaining, modifying, and consolidating multiple versions of data items in cache memory to efficiently accommodate data access requests by the hosts. Data associated with a logical track is represented in cache by a number of cache track image parts. Each part represents one or more records in cache, where multiple parts may exist in cache for the same logical track. The provision of multiple parts supports concurrent access by multiple operations or "processes" to data associated with a track. Namely, each part is given a "status" selected from a predetermined catalog of statuses; the assigned status thus establishes the permissible manner of accessing that part. Depending upon a part's status, the part may be used by one process (e.g. Read) or by multiple processes concurrently (e.g. Read and Destage). Other part statuses dedicate a part to a single process (e.g. Write). Multiple parts, not being actively used by a process, may be combined by a merge function to represent the most current image of the track.

Inventors

  • 👤 Michael Thomas Benhase
  • 👤 David Alan Burton
  • 👤 Marshall Heyman
  • 👤 John Norbert McCauley
  • 👤 Robert Louis Morton

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 21:36
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0866; G06F2212/00; G06F2212/31; G06F2212/312

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 164 words
A method of providing multiple processes with concurrent data access to stored data, comprising the steps of: for each one of at least one item of data, maintaining multiple data parts in cache memory corresponding to the item of data in response to different storage operations involving the item of data; maintaining, for each item of data having one or more corresponding data parts in the cache memory, a listing of status of the data parts, the status of each data part designating a permissible manner of access to that data part by requesting processes; receiving a request from one of the processes for access to the data item; consulting the status listing to identify all data parts corresponding to the requested data item; in response to the request, identifying one of the data parts whose permissible manner of access is compatible with the received request for access to the data item; and providing the requesting process with access to the identified data part.
Claim 2
Independent Claim 164 words
A method of providing multiple processes with concurrent data access to stored data, comprising the steps of: for each one of at least one item of data, maintaining multiple data parts in cache memory corresponding to the item of data in response to different storage operations involving the item of data; maintaining, for each item of data having one or more corresponding data parts in the cache memory, a listing of status of the data parts, the status of each data part designating a permissible manner of access to that data part by requesting processes; receiving a request from one of the processes for access to the data item; consulting the status listing to identify all data parts corresponding to the requested data item; in response to the request, identifying one of the data parts whose permissible manner of access is compatible with the received request for access to the data item; and providing the requesting process with access to the identified data part.
Claim 3
Dependent Claim 30 words
The method of claim 1, further comprising the steps of, in response to a predetermined event, merging selected data parts in the cache memory corresponding to a common data item.
Claim 4
Dependent Claim 20 words
The method of claim 1, further comprising the steps of, in response to a predetermined condition, deleting selected data parts.
Claim 5
Dependent Claim 42 words
The method of claim 1, each status listing ranking the data parts identified therein, the request for access to the data item comprising a Read request, and the identifying step comprising the steps of identifying a highest-ranked one of the data parts.
Claim 6
Independent Claim 201 words
A method of providing multiple processes with concurrent data access to stored data, comprising the steps of: for an item of data represented in cache memory, maintaining multiple data parts corresponding to the item of data in response to different storage operations; maintaining, for each item of data, a listing of ranked status for the corresponding data parts; receiving a request from one of the processes for access to the data item; consulting the listing to identify all data parts corresponding to the requested data item; identifying in response to the request one of the data parts having a predetermined relationship in status to the other data parts; providing the requesting process with access to the identified data part; and in response to a predetermined event, merging selected data parts corresponding to a common data item, the merging comprising: identifying first and second data parts corresponding to a common data item; determining whether the first and second data parts are currently being used by a process; and applying predetermined merge rules to determine whether merging of the first and second data parts is possible, and if so, merging the first and second data parts to form a consolidated third data part.
Claim 7
Independent Claim 201 words
A method of providing multiple processes with concurrent data access to stored data, comprising the steps of: for an item of data represented in cache memory, maintaining multiple data parts corresponding to the item of data in response to different storage operations; maintaining, for each item of data, a listing of ranked status for the corresponding data parts; receiving a request from one of the processes for access to the data item; consulting the listing to identify all data parts corresponding to the requested data item; identifying in response to the request one of the data parts having a predetermined relationship in status to the other data parts; providing the requesting process with access to the identified data part; and in response to a predetermined event, merging selected data parts corresponding to a common data item, the merging comprising: identifying first and second data parts corresponding to a common data item; determining whether the first and second data parts are currently being used by a process; and applying predetermined merge rules to determine whether merging of the first and second data parts is possible, and if so, merging the first and second data parts to form a consolidated third data part.
Claim 8
Independent Claim 156 words
A method of providing multiple processes with concurrent data access to stored data, comprising the steps of: for an item of data represented in cache memory, maintaining multiple data parts corresponding to the item of data in response to different storage operations; maintaining, for each item of data, a listing of ranked status for the corresponding data parts; receiving a request from one of the processes for access to the data item; consulting the listing to identify all data parts corresponding to the requested data item; identifying in response to the request one of the data parts having a predetermined relationship in status to the other data parts; providing the requesting process with access to the identified data part; and in response to a predetermined event, merging selected data parts corresponding to a common data item, the predetermined event comprising completion of a storage operation involving a data part corresponding to the common item of data.
Claim 9
Independent Claim 156 words
A method of providing multiple processes with concurrent data access to stored data, comprising the steps of: for an item of data represented in cache memory, maintaining multiple data parts corresponding to the item of data in response to different storage operations; maintaining, for each item of data, a listing of ranked status for the corresponding data parts; receiving a request from one of the processes for access to the data item; consulting the listing to identify all data parts corresponding to the requested data item; identifying in response to the request one of the data parts having a predetermined relationship in status to the other data parts; providing the requesting process with access to the identified data part; and in response to a predetermined event, merging selected data parts corresponding to a common data item, the predetermined event comprising completion of a storage operation involving a data part corresponding to the common item of data.
Claim 10
Dependent Claim 184 words
A data storage medium tangibly embodying a program of machine instructions executable by a digital data processing apparatus to perform method steps for providing multiple processes with concurrent data access to stored data, said method steps comprising: for each one of at least one item of data, maintaining multiple data parts in cache memory corresponding to the item of data in response to different storage operations involving the item of data; maintaining, for each item of data having one or more corresponding data parts in the cache memory, a listing of status of the data parts, the status of each data part designating a permissible manner of access to that data part by requesting processes; receiving a request from one of the processes for access to the data item; consulting the status listing to identify all data parts corresponding to the requested data item; in response to the request, identifying one of the data parts whose permissible manner of access is compatible with the received request for access to the data item; and providing the requesting process with access to the identified data part.
Claim 11
Dependent Claim 184 words
A data storage medium tangibly embodying a program of machine instructions executable by a digital data processing apparatus to perform method steps for providing multiple processes with concurrent data access to stored data, said method steps comprising: for each one of at least one item of data, maintaining multiple data parts in cache memory corresponding to the item of data in response to different storage operations involving the item of data; maintaining, for each item of data having one or more corresponding data parts in the cache memory, a listing of status of the data parts, the status of each data part designating a permissible manner of access to that data part by requesting processes; receiving a request from one of the processes for access to the data item; consulting the status listing to identify all data parts corresponding to the requested data item; in response to the request, identifying one of the data parts whose permissible manner of access is compatible with the received request for access to the data item; and providing the requesting process with access to the identified data part.
Claim 12
Dependent Claim 32 words
The data storage medium of claim 7, further comprising the steps of, in response to a predetermined event, merging selected data parts in the cache memory corresponding to a common data item.
Claim 13
Dependent Claim 22 words
The data storage medium of claim 7, further comprising the steps of, in response to a predetermined condition, deleting selected data parts.
Claim 14
Dependent Claim 44 words
The data storage medium of claim 7, each status listing ranking the data parts identified therein, the request for access to the data item comprising a Read request, and the identifying step comprising the steps of identifying a highest-ranked one of the data parts.
Claim 15
Dependent Claim 221 words
A data storage medium tangibly embodying a program of machine instructions executable by a digital data processing apparatus to perform method steps for providing multiple processes with concurrent data access to stored data, said method steps comprising: for an item of data represented in cache memory, maintaining multiple data parts corresponding to the item of data in response to different storage operations; maintaining, for each item of data, a listing of ranked status for the corresponding data parts; receiving a request from one of the processes for access to the data item; consulting the listing to identify all data parts corresponding to the requested data item; identifying in response to the request one of the data parts having a predetermined relationship in status to the other data parts; providing the requesting process with access to the identified data part; and in response to a predetermined event, merging selected data parts corresponding to a common data item, the merging comprising: identifying first and second data parts corresponding to a common data item; determining whether the first and second data parts are currently being used by a process; and applying predetermined merge rules to determine whether merging of the first and second data parts is possible, and if so, merging the first and second data parts to form a consolidated third data part.
Claim 16
Dependent Claim 221 words
A data storage medium tangibly embodying a program of machine instructions executable by a digital data processing apparatus to perform method steps for providing multiple processes with concurrent data access to stored data, said method steps comprising: for an item of data represented in cache memory, maintaining multiple data parts corresponding to the item of data in response to different storage operations; maintaining, for each item of data, a listing of ranked status for the corresponding data parts; receiving a request from one of the processes for access to the data item; consulting the listing to identify all data parts corresponding to the requested data item; identifying in response to the request one of the data parts having a predetermined relationship in status to the other data parts; providing the requesting process with access to the identified data part; and in response to a predetermined event, merging selected data parts corresponding to a common data item, the merging comprising: identifying first and second data parts corresponding to a common data item; determining whether the first and second data parts are currently being used by a process; and applying predetermined merge rules to determine whether merging of the first and second data parts is possible, and if so, merging the first and second data parts to form a consolidated third data part.
Claim 17
Dependent Claim 176 words
A data storage medium tangibly embodying a program of machine instructions executable by a digital data processing apparatus to perform method steps for providing multiple processes with concurrent data access to stored data, said method steps comprising: for an item of data represented in cache memory, maintaining multiple data parts corresponding to the item of data in response to different storage operations; maintaining, for each item of data, a listing of ranked status for the corresponding data parts; receiving a request from one of the processes for access to the data item; consulting the listing to identify all data parts corresponding to the requested data item; identifying in response to the request one of the data parts having a predetermined relationship in status to the other data parts; providing the requesting process with access to the identified data part; and in response to a predetermined event, merging selected data parts corresponding to a common data item, the predetermined event comprising completion of a storage operation involving a data part corresponding to the common item of data.
Claim 18
Dependent Claim 176 words
A data storage medium tangibly embodying a program of machine instructions executable by a digital data processing apparatus to perform method steps for providing multiple processes with concurrent data access to stored data, said method steps comprising: for an item of data represented in cache memory, maintaining multiple data parts corresponding to the item of data in response to different storage operations; maintaining, for each item of data, a listing of ranked status for the corresponding data parts; receiving a request from one of the processes for access to the data item; consulting the listing to identify all data parts corresponding to the requested data item; identifying in response to the request one of the data parts having a predetermined relationship in status to the other data parts; providing the requesting process with access to the identified data part; and in response to a predetermined event, merging selected data parts corresponding to a common data item, the predetermined event comprising completion of a storage operation involving a data part corresponding to the common item of data.
Claim 19
Dependent Claim 209 words
A data storage system, comprising: at least one host system performing multiple processes; a cache memory; and a controller, coupled to said at least one host system and said cache memory, said controller being programmed to execute a program of machine instructions to perform method steps for providing the multiple processes with concurrent data access to stored data, said method steps comprising: for each one of at least one item of data, maintaining multiple data parts in cache memory corresponding to the item of data in response to different storage operations involving the item of data; maintaining, for each item of data having one or more corresponding data parts in the cache memory, a listing of status of the data parts, the status of each data part designating a permissible manner of access to that data part by requesting processes; receiving a request from one of the processes for access to the data item; consulting the status listing to identify all data parts corresponding to the requested data item; in response to the request, identifying one of the data parts whose permissible manner of access is compatible with the received request for access to the data item; and providing the requesting process with access to the identified data part.
Claim 20
Dependent Claim 209 words
A data storage system, comprising: at least one host system performing multiple processes; a cache memory; and a controller, coupled to said at least one host system and said cache memory, said controller being programmed to execute a program of machine instructions to perform method steps for providing the multiple processes with concurrent data access to stored data, said method steps comprising: for each one of at least one item of data, maintaining multiple data parts in cache memory corresponding to the item of data in response to different storage operations involving the item of data; maintaining, for each item of data having one or more corresponding data parts in the cache memory, a listing of status of the data parts, the status of each data part designating a permissible manner of access to that data part by requesting processes; receiving a request from one of the processes for access to the data item; consulting the status listing to identify all data parts corresponding to the requested data item; in response to the request, identifying one of the data parts whose permissible manner of access is compatible with the received request for access to the data item; and providing the requesting process with access to the identified data part.
Claim 21
Dependent Claim 30 words
The system of claim 13, further comprising the steps of, in response to a predetermined event, merging selected data parts in the cache memory corresponding to a common data item.
Claim 22
Dependent Claim 74 words
The system of claim 14, the merging step comprising the steps of: identifying first and second data parts corresponding to a common data item; determining whether the first and second data parts are currently being used by a process; and applying predetermined merge rules to determine whether merging of the first and second data parts is possible, and if so, merging the first and second data parts to form a consolidated third data part.
Claim 23
Dependent Claim 26 words
The system of claim 14, wherein the predetermined event comprises completion of a storage operation involving a data part corresponding to the common item of data.
Claim 24
Dependent Claim 20 words
The system of claim 13, further comprising the steps of, in response to a predetermined condition, deleting selected data parts.
Claim 25
Dependent Claim 42 words
The system of claim 13, each status listing ranking the data parts identified therein, the request for access to the data item comprising a Read request, and the identifying step comprising the steps of identifying a highest-ranked one of the data parts.

References Cited (Backward Citations)

US4489378A Cited
US5375227A Cited
US5345565A Cited
US5257391A Cited
US5345576A Cited
US5608890A Cited
US5418925A Cited
US5392244A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-06-29 2001-12-29 2002-06-30 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-06-29 2005-12-29 2006-06-30 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-06-29 2009-12-29 2010-06-30 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag