← Back to Patent Explorer
US5247660A Expired / Lapsed US ⏱️ 0.0 years remaining

Method of virtual memory storage allocation with dynamic adjustment

Assignee: Filetek Inc
•
Filing: 1989-07-13
•
Granted: 1993-09-21
•
Expires: 2009-07-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method of dynamically managing the storage of information in a mass memory of a data processor is described. The mass memory includes a plurality of volumes of write-once media such as optical discs. The method involves grouping the volumes into volume sets, which each contain at least one file set, and dynamically increasing the size of the file sets and volume sets as needed during file storage. Update areas are set aside for each file set for modifications to the original data originally written into that file set. Allocation of storage to allow time-efficient access of files is accomplished by examining storage media characteristics, limits on file set size, and sizes of the data to be written into the file sets. Timers are set to indicate when volumes contain obsolete data and can be removed, when no additional data should be written onto volumes which are not obsolete, and when a volume should be flipped over so the other surface can be filled.

Inventors

  • 👤 William J. Ashcraft
  • 👤 Grant E. Woodside, III
  • 👤 Gerald W. Currington
  • 👤 Kenneth A. Robb

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 21:08
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/06; G06F3/0601; G06F16/00; G06F16/20; G06F16/25; G06F16/258; G06F3/0602; G06F3/061; G06F3/0611; G06F3/0628; G06F3/0629; G06F3/0631; G06F3/0668; G06F3/067; G06F3/0671; G06F3/0673; G06F3/0674; G06F3/0677; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99956

Claims Analysis

Total Claims: 28
Claim 1
Independent Claim 270 words
A method of dynamically managing the storage of information in a mass memory of a data processor, said mass memory including a plurality of volumes and the method comprising the steps, performed by said data processor, of: grouping selected ones of said volumes into a plurality of nonoverlapping volume sets, each one of said volume sets having an initial number of volumes and being designed to contain a corresponding set of logically related data; organizing each of said volume sets into at least one file set which is designed to contain a logically related subset of said corresponding set of logically related data, each of said at least one file set having an initial size and residing on volumes of a corresponding one of said volume sets; allocating to each of said at least one file set at least one portion of volumes of said corresponding one of said volume sets; storing data for a selected one of said at least one file set into said allocated portion of said volumes of said corresponding one of said volume sets; dynamically increasing the size of said selected one of said at least one file set during storage of said data by allocating additional portions of volumes of the volume set corresponding to said selected one of said at least one file set; and dynamically increasing the number of volumes in said corresponding one of said volume sets during storage of said data by assigning to said corresponding one of said volume sets additional ones of said plurality of volumes which have not been previously grouped into one of said volume sets.
Claim 2
Independent Claim 270 words
A method of dynamically managing the storage of information in a mass memory of a data processor, said mass memory including a plurality of volumes and the method comprising the steps, performed by said data processor, of: grouping selected ones of said volumes into a plurality of nonoverlapping volume sets, each one of said volume sets having an initial number of volumes and being designed to contain a corresponding set of logically related data; organizing each of said volume sets into at least one file set which is designed to contain a logically related subset of said corresponding set of logically related data, each of said at least one file set having an initial size and residing on volumes of a corresponding one of said volume sets; allocating to each of said at least one file set at least one portion of volumes of said corresponding one of said volume sets; storing data for a selected one of said at least one file set into said allocated portion of said volumes of said corresponding one of said volume sets; dynamically increasing the size of said selected one of said at least one file set during storage of said data by allocating additional portions of volumes of the volume set corresponding to said selected one of said at least one file set; and dynamically increasing the number of volumes in said corresponding one of said volume sets during storage of said data by assigning to said corresponding one of said volume sets additional ones of said plurality of volumes which have not been previously grouped into one of said volume sets.
Claim 3
Dependent Claim 31 words
The method of claim 1 wherein said volumes are volumes of write-once media, and wherein said storing step includes the step of storing said data into said volumes of write-once media.
Claim 4
Dependent Claim 43 words
The method of claim 1 wherein said storing step includes the substep of selecting one of a plurality of types of storage for said data, said plurality of types including time efficiency and space efficiency, storing said data according to the selected type.
Claim 5
Dependent Claim 87 words
The method of claim 1 further including the step of arranging each of said organized at least one file set into general storage areas for storing initially written original data and corresponding update areas for storing modifications to said original data; and wherein said storing step including the substeps of storing said original data only in the general data areas of said at least one file set, and storing said modifications to said original data into the corresponding update areas of said at least one file set.
Claim 6
Dependent Claim 44 words
The method of claim 4 wherein said storing step also includes the substep of storing, when said corresponding update areas are full, additional ones of said modifications to said original data into selected portions of corresponding general data areas which contain no original data.
Claim 7
Dependent Claim 34 words
The method of claim 1 wherein said allocating step includes the step of allocating said at least one portion based upon an associated size limit estimate for said corresponding at least one file set.
Claim 8
Dependent Claim 38 words
The method of claim 1 wherein said allocating step includes the step of allocating noncontiguous portions of said volumes in said corresponding one of said volume sets for one or more of said at least one file set.
Claim 9
Dependent Claim 52 words
The method of claim 1 wherein said initial number of volumes in each one of said volume sets can be zero, and wherein said step of dynamically increasing the number of volumes in the corresponding one of said volume sets includes the substep of increasing the number of said volumes without limit.
Claim 10
Dependent Claim 42 words
The method of claim 1 wherein said initial file set size can be zero, and wherein said step of dynamically increasing the size of said selected file set includes the substep of increasing the size of said selected file set without limit.
Claim 11
Dependent Claim 122 words
The method of claim 1 further including the steps of: creating at least one file to be stored in a corresponding one of said at least one file set; allocating an additional portion of said volumes according to a storage allocation file for storage of said at least one created file, such that said additional portion of said volumes is of sufficient size to allow said corresponding one of said file sets to be stored on said volumes without fragmentation except as required by physical constraints of said volumes; filling said additional portion with said at least one created file; and modifying said storage allocation file to correlate said additional portion of said volumes and said corresponding one of said file sets.
Claim 12
Dependent Claim 11 words
The method of claim 10, wherein said volumes include write-once media.
Claim 13
Dependent Claim 11 words
The method of claim 10, wherein said volumes include erasable media.
Claim 14
Independent Claim 209 words
A method of dynamically storing original data and modifications to said original data into file sets stored in a memory system for a data processor, said original data being data initially written into said file sets, the method comprising the steps, performed by said data processor, of: assigning a general data area and a corresponding update area to each one of said file sets, wherein said assigning step includes the substep of assigning the general data area and corresponding update area of each one of said file sets such that a ratio of sizes of said general data area and said corresponding update areas equals a user-determined percentage for each one of said file sets; storing said original data only in said general data area of each one of said file sets; storing said modifications to said original data in said corresponding update area of each one of said file sets; and storing said modifications of said original data in selected portions of said general data area of each one of said file sets when said corresponding update area has been filled with said modifications, said selected portions of said general data area including portions of said general data area into which said original data has not been stored.
Claim 15
Independent Claim 209 words
A method of dynamically storing original data and modifications to said original data into file sets stored in a memory system for a data processor, said original data being data initially written into said file sets, the method comprising the steps, performed by said data processor, of: assigning a general data area and a corresponding update area to each one of said file sets, wherein said assigning step includes the substep of assigning the general data area and corresponding update area of each one of said file sets such that a ratio of sizes of said general data area and said corresponding update areas equals a user-determined percentage for each one of said file sets; storing said original data only in said general data area of each one of said file sets; storing said modifications to said original data in said corresponding update area of each one of said file sets; and storing said modifications of said original data in selected portions of said general data area of each one of said file sets when said corresponding update area has been filled with said modifications, said selected portions of said general data area including portions of said general data area into which said original data has not been stored.
Claim 16
Independent Claim 224 words
A method of dynamically storing original data and modifications to said original data into file sets stored in a memory system for a data processor, said original data being data initially written into said file sets, wherein said memory system comprises a plurality of volumes of memory media containing said file sets, and data is stored on surfaces of said volumes of memory media such that each of said file sets is stored on a corresponding collection of surfaces, the method comprising the steps, performed by said data processor, of: assigning a general data area and a corresponding update area to each one of said file sets, wherein said assigning step includes the substep of assigning each general data area and said corresponding update area to one of said surfaces; storing said original data only in said general data area of each one of said file sets; storing said modifications to said original data in said corresponding update area of each one of said file sets; and storing said modifications of said original data in selected portions of said general data area of each one of said file sets when said corresponding update area has been filled with said modifications, said selected portions of said general data area including portions of said general data area into which said original data has not been stored.
Claim 17
Independent Claim 224 words
A method of dynamically storing original data and modifications to said original data into file sets stored in a memory system for a data processor, said original data being data initially written into said file sets, wherein said memory system comprises a plurality of volumes of memory media containing said file sets, and data is stored on surfaces of said volumes of memory media such that each of said file sets is stored on a corresponding collection of surfaces, the method comprising the steps, performed by said data processor, of: assigning a general data area and a corresponding update area to each one of said file sets, wherein said assigning step includes the substep of assigning each general data area and said corresponding update area to one of said surfaces; storing said original data only in said general data area of each one of said file sets; storing said modifications to said original data in said corresponding update area of each one of said file sets; and storing said modifications of said original data in selected portions of said general data area of each one of said file sets when said corresponding update area has been filled with said modifications, said selected portions of said general data area including portions of said general data area into which said original data has not been stored.
Claim 18
Dependent Claim 50 words
The method of claim 14 wherein said step of storing said modifications to said original data in said corresponding update area includes the substep of storing said modifications to said original data in the corresponding update area on the one surface as the general data area containing the original data.
Claim 19
Dependent Claim 46 words
The method of claim 15 wherein the step of storing said modifications in said selected portions of said general data area includes the substep of storing said modifications in the general data area on the one surface that contains said corresponding update area which is full.
Claim 20
Dependent Claim 43 words
The method of claim 16 further including the step of storing, when said general data area is full, said modifications to said original data in an area of free storage on the one surface as said general data area containing said original data.
Claim 21
Dependent Claim 58 words
The method of claim 17 further including the step of storing said modifications in a general data area on a different one of said corresponding collection of surfaces when the general data area on said one surface is full and there is no free storage on said one surface as the general data area containing the original data.
Claim 22
Independent Claim 239 words
A method of dynamically storing original data and modifications to said original data into file sets stored in a memory system for a data processor, said original data being data initially written into said file sets, wherein said memory system comprises a plurality of volumes of memory media containing said file sets, and data is stored on surfaces of said memory media such that each of said file sets is stored in a corresponding collection of surfaces, a portion of said surfaces storing data from the same file set being termed a surface partition, the method comprising the steps, performed by said data processor, of: assigning a general data area and a corresponding update area to each one of said file sets, wherein said assigning step includes the substep of assigning each general area and said corresponding update area to one of said surface partitions; storing said original data only in said general data area of each one of said file sets; storing said modifications to said original data in said corresponding update area of each one of said file sets; and; storing said modifications of said original data in selected portions of said general data area of each one of said file sets when said corresponding update area has been filled with said modifications, said selected portions of said general data area including portions of said general data area into which said original data has not been stored.
Claim 23
Independent Claim 239 words
A method of dynamically storing original data and modifications to said original data into file sets stored in a memory system for a data processor, said original data being data initially written into said file sets, wherein said memory system comprises a plurality of volumes of memory media containing said file sets, and data is stored on surfaces of said memory media such that each of said file sets is stored in a corresponding collection of surfaces, a portion of said surfaces storing data from the same file set being termed a surface partition, the method comprising the steps, performed by said data processor, of: assigning a general data area and a corresponding update area to each one of said file sets, wherein said assigning step includes the substep of assigning each general area and said corresponding update area to one of said surface partitions; storing said original data only in said general data area of each one of said file sets; storing said modifications to said original data in said corresponding update area of each one of said file sets; and; storing said modifications of said original data in selected portions of said general data area of each one of said file sets when said corresponding update area has been filled with said modifications, said selected portions of said general data area including portions of said general data area into which said original data has not been stored.
Claim 24
Independent Claim 558 words
A method of dynamically managing the storage of information in a mass memory of a data processor, said mass memory including a plurality of volumes and the method comprising the steps, performed by said data processor, of: grouping selected ones of said volumes into a plurality of nonoverlapping volume sets, each one of said volume sets having an initial number of volumes and being designed to contain a corresponding set of logically related data; organizing each of said volume sets into at least one file set which is designed to contain a logically related subset of said corresponding set of logically related data, each of said at least one file set having an initial size and residing on volumes of a corresponding one of said volume sets; allocating to each of said at least one file set at least one portion of volumes of said corresponding one of said volume sets; storing data for a selected one of said at least one file set into said allocated portion of said volumes of said corresponding one of said volume sets; dynamically increasing the size of said selected one of said at least one file set during storage of said data by allocating additional portions of volumes of the volume set corresponding to said selected one of said at least one file set; dynamically increasing the number of volumes in said corresponding one of said volume sets during storage of said data by assigning to said corresponding one of said volume sets additional ones of said plurality of volumes which have not been previously grouped into one of said volume sets; creating at least one file to be stored in a corresponding one of said at least one file set; allocating an additional portion of said volumes according to a storage allocation file for storage of said at least one created file, such that said additional portion of said volumes is of sufficient size to allow said corresponding one of said file sets to be stored on said volumes without fragmentation except as required by physical constraints of said volumes; filling said additional portion with said at least one created file; modifying said storage allocation file to correlate said additional portion of said volumes and said corresponding one of said file sets, wherein each of said volumes have at least one surface, each of said surface having a same size, wherein each of said at least one file set is associated with a size limit, which may be unspecified, and wherein the step of allocating said additional portion includes the substeps of determining a total size of said at least one file to be stored; allocating one surface as said additional portion if said total size is less than or equal to said surface size, and if the associated size limit is either unspecified, or is greater than or equal to said surface size; allocating as said additional portion, a portion of said volumes equal to the total size up to the associated size limit if said total size and the associated size limit are both either smaller than or greater than said surface size; and allocating as said additional portion, the smallest number of surfaces which is greater than said total size if said total size is larger than said surface size and said associated size limit is unspecified.
Claim 25
Independent Claim 558 words
A method of dynamically managing the storage of information in a mass memory of a data processor, said mass memory including a plurality of volumes and the method comprising the steps, performed by said data processor, of: grouping selected ones of said volumes into a plurality of nonoverlapping volume sets, each one of said volume sets having an initial number of volumes and being designed to contain a corresponding set of logically related data; organizing each of said volume sets into at least one file set which is designed to contain a logically related subset of said corresponding set of logically related data, each of said at least one file set having an initial size and residing on volumes of a corresponding one of said volume sets; allocating to each of said at least one file set at least one portion of volumes of said corresponding one of said volume sets; storing data for a selected one of said at least one file set into said allocated portion of said volumes of said corresponding one of said volume sets; dynamically increasing the size of said selected one of said at least one file set during storage of said data by allocating additional portions of volumes of the volume set corresponding to said selected one of said at least one file set; dynamically increasing the number of volumes in said corresponding one of said volume sets during storage of said data by assigning to said corresponding one of said volume sets additional ones of said plurality of volumes which have not been previously grouped into one of said volume sets; creating at least one file to be stored in a corresponding one of said at least one file set; allocating an additional portion of said volumes according to a storage allocation file for storage of said at least one created file, such that said additional portion of said volumes is of sufficient size to allow said corresponding one of said file sets to be stored on said volumes without fragmentation except as required by physical constraints of said volumes; filling said additional portion with said at least one created file; modifying said storage allocation file to correlate said additional portion of said volumes and said corresponding one of said file sets, wherein each of said volumes have at least one surface, each of said surface having a same size, wherein each of said at least one file set is associated with a size limit, which may be unspecified, and wherein the step of allocating said additional portion includes the substeps of determining a total size of said at least one file to be stored; allocating one surface as said additional portion if said total size is less than or equal to said surface size, and if the associated size limit is either unspecified, or is greater than or equal to said surface size; allocating as said additional portion, a portion of said volumes equal to the total size up to the associated size limit if said total size and the associated size limit are both either smaller than or greater than said surface size; and allocating as said additional portion, the smallest number of surfaces which is greater than said total size if said total size is larger than said surface size and said associated size limit is unspecified.
Claim 26
Dependent Claim 100 words
The method of claim 20, wherein each of said at least one file set is selected for one of time efficient and space efficient storage and wherein the method includes the steps of: determining, if said corresponding file set is selected for space efficient storage, a total size of said at least one file; finding, if said corresponding file set is selected for space efficient storage, one of surfaces having unallocated portions at least as large as said total size; and allocating, if said file set is specified for space efficient storage, said unallocated portions to said corresponding file set.
Claim 27
Dependent Claim 13 words
The method of claim 20 or 21, wherein said volumes include write-once media.
Claim 28
Dependent Claim 13 words
The method of claim 20 or 21, wherein said volumes include erasable media.

References Cited (Backward Citations)

US4435752A Cited
US4849878A Cited
US4805097A Cited
US4912629A Cited
US5119291A Cited
WO1989001663A1 Cited
US5129088A Cited
EP0325823A1 Cited
US5029125A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-09-20 1997-03-22 1997-09-21 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-09-20 2001-03-22 2001-09-21 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-09-20 2005-03-22 2005-09-21 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag