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

Method and apparatus for storing compressed file data on a disk where each MDFAT data structure includes an extra byte

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1995-09-26
•
Granted: 1998-09-15
•
Expires: 2015-09-26
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for storing compressed file data stored on a disk. The method includes an improved format for the Compressed Volume File (CVF), and more specifically, 10 an improved format for the MDFAT data structure stored within the CVF. The improved format includes using an additional byte for maintaining each entry in the MDFAT data structure which increases the number of sectors within the Sector Heap that can be addressed and accessed. The improved format further allows compressed clusters to be stored in fragments in various portions of vacant storage space located throughout the Sector Heap. The new format for the MDFAT data structure includes a bit that identifies whether each cluster is being stored in fragments. The method stores the locations of each of the fragments in a Fragment Pointer List located in the first sector of the first fragment.

Inventors

  • 👤 Eric John Straub
  • 👤 Richard P. Jernigan, IV
  • 👤 Scott D. Quinn
  • 👤 Peter Blackburn Stewart

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 19:27
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/06; G06F3/0601; G06F3/0602; G06F3/0608; G06F16/00; G06F16/10; G06F3/0628; G06F3/0638; G06F3/0643; G06F3/0668; G06F3/0671; G06F3/0673; G06F3/0674; G06F3/0676; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99941; Y10S707/99942

Claims Analysis

Total Claims: 47
Claim 1
Independent Claim 188 words
A method for storing at least one cluster of file data in a plurality of fragments of non-adjacent sectors on a disk, each cluster comprising a plurality of sectors, each sector being a fixed length capable of storing a predetermined, fixed number of bytes, said method comprising the steps of: maintaining a first data structure having an entry for each file stored on the disk, each entry identifying the cluster in which the first portion of each respective file is stored; maintaining a second data structure having an entry for each cluster on the disk, each entry identifying another cluster in which the next portion of each respective file is stored; maintaining a third data structure having an entry for each cluster on the disk, each entry identifying the sectors used to store the data for each respective cluster, and each entry identifying whether the data for each respective cluster is stored in fragments; identifying the sectors used to store the data of each fragment; and placing entries in the first, second, and third data structures in accordance with the location of data stored in each separate cluster.
Claim 2
Independent Claim 188 words
A method for storing at least one cluster of file data in a plurality of fragments of non-adjacent sectors on a disk, each cluster comprising a plurality of sectors, each sector being a fixed length capable of storing a predetermined, fixed number of bytes, said method comprising the steps of: maintaining a first data structure having an entry for each file stored on the disk, each entry identifying the cluster in which the first portion of each respective file is stored; maintaining a second data structure having an entry for each cluster on the disk, each entry identifying another cluster in which the next portion of each respective file is stored; maintaining a third data structure having an entry for each cluster on the disk, each entry identifying the sectors used to store the data for each respective cluster, and each entry identifying whether the data for each respective cluster is stored in fragments; identifying the sectors used to store the data of each fragment; and placing entries in the first, second, and third data structures in accordance with the location of data stored in each separate cluster.
Claim 3
Dependent Claim 33 words
The method of claim 1 wherein each respective entry of the third data structure comprises a first field for identifying the first sector in which the data of each respective cluster is stored.
Claim 4
Dependent Claim 31 words
The method of claim 1 wherein each respective entry of the third data structure comprises a second field for identifying whether the data of each respective cluster is stored in fragments.
Claim 5
Dependent Claim 66 words
The method of claim 1 wherein each respective entry of the third data structure comprises a third field for identifying: the number of sectors used to store the data of each respective cluster, if a cluster is not stored in fragments; or the number of sectors used to store the data of the first fragment of each respective cluster, if a cluster is stored in fragments.
Claim 6
Dependent Claim 22 words
The method of claim 1 wherein each respective entry of the third data structure is not greater than five bytes in length.
Claim 7
Dependent Claim 25 words
The method of claim 2 wherein the first field of the third data structure is capable of identifying any one of over 8 million sectors.
Claim 8
Dependent Claim 22 words
The method of claim 2 wherein the first field of the third data structure is not greater than twenty-three bits in length.
Claim 9
Dependent Claim 19 words
The method of claim 3 wherein the second field of the third data structure is one bit in length.
Claim 10
Dependent Claim 26 words
The method of claim 4 wherein the third field of the third data structure is capable of identifying up to sixty-four sectors for each respective cluster.
Claim 11
Dependent Claim 22 words
The method of claim 4 wherein the third field of the third data structure is not greater than six bits in length.
Claim 12
Dependent Claim 20 words
The method of claim 1 wherein the sectors used to store each fragment are identified in a fourth data structure.
Claim 13
Dependent Claim 27 words
The method of claim 11 wherein the fourth data structure identifies the first sector of each fragment and the number of sectors used to store each fragment.
Claim 14
Dependent Claim 16 words
The method of claim 11 wherein the fourth data structure is stored in the first fragment.
Claim 15
Dependent Claim 20 words
The method of claim 11 wherein the fourth data structure is stored in the first sector of the first fragment.
Claim 16
Independent Claim 245 words
A system for storing at least one cluster of file data in a plurality of fragments of non-adjacent sectors on a disk, each cluster comprising a plurality of sectors, each sector being a fixed length capable of storing a predetermined, fixed number of bytes, comprising: a computer having a memory; an operating system stored within said memory; a disk drive operatively connected to said computer for storing data on said disk; wherein said operating system comprises: means for maintaining a first data structure on said disk, said first data structure having an entry for each file stored on said disk, each entry identifying the cluster in which the first portion of each respective file is stored; means for maintaining a second data structure on said disk, said second data structure having an entry for each cluster on said disk, each entry identifying another cluster in which the next portion of each respective file is stored; means for maintaining a third data structure on said disk, said third data structure having an entry for each cluster on said disk, each entry identifying the sectors used to store the data for each respective cluster, and each entry identifying whether the data for each respective cluster is stored in fragments; means for identifying the sectors used to store the data of each fragment; and means for placing entries in said first, second, and third data structures in accordance with the location of data stored in each respective cluster.
Claim 17
Independent Claim 245 words
A system for storing at least one cluster of file data in a plurality of fragments of non-adjacent sectors on a disk, each cluster comprising a plurality of sectors, each sector being a fixed length capable of storing a predetermined, fixed number of bytes, comprising: a computer having a memory; an operating system stored within said memory; a disk drive operatively connected to said computer for storing data on said disk; wherein said operating system comprises: means for maintaining a first data structure on said disk, said first data structure having an entry for each file stored on said disk, each entry identifying the cluster in which the first portion of each respective file is stored; means for maintaining a second data structure on said disk, said second data structure having an entry for each cluster on said disk, each entry identifying another cluster in which the next portion of each respective file is stored; means for maintaining a third data structure on said disk, said third data structure having an entry for each cluster on said disk, each entry identifying the sectors used to store the data for each respective cluster, and each entry identifying whether the data for each respective cluster is stored in fragments; means for identifying the sectors used to store the data of each fragment; and means for placing entries in said first, second, and third data structures in accordance with the location of data stored in each respective cluster.
Claim 18
Dependent Claim 33 words
The system of claim 15 wherein each respective entry of said third data structure comprises a first field for identifying the first sector in which the data of each respective cluster is stored.
Claim 19
Dependent Claim 31 words
The system of claim 15 wherein each respective entry of said third data structure comprises a second field for identifying whether the data of each respective cluster is stored in fragments.
Claim 20
Dependent Claim 66 words
The system of claim 15 wherein each respective entry of the third data structure comprises a third field for identifying: the number of sectors used to store the data of each respective cluster, if a cluster is not stored in fragments; or the number of sectors used to store the data of the first fragment of each respective cluster, if a cluster is stored in fragments.
Claim 21
Dependent Claim 21 words
The system of claim 15 wherein each entry of said third data structure is not greater than five bytes in length.
Claim 22
Dependent Claim 25 words
The system of claim 16 wherein said first field of said third data structure is capable of identifying any one of over 8 million sectors.
Claim 23
Dependent Claim 22 words
The system of claim 16 wherein said first field of said third data structure is not greater than twenty-three bits in length.
Claim 24
Dependent Claim 19 words
The system of claim 17 wherein said second field of said third data structure is one bit in length.
Claim 25
Dependent Claim 26 words
The system of claim 18 wherein said third field of said third data structure is capable of identifying up to sixty-four sectors for each respective cluster.
Claim 26
Dependent Claim 22 words
The system of claim 18 wherein said third field of said third data structure is not greater than six bits in length.
Claim 27
Dependent Claim 21 words
The system of claim 15 wherein the sectors used to store each said fragment are identified in a fourth data structure.
Claim 28
Dependent Claim 29 words
The system of claim 25 wherein said fourth data structure identifies the first sector of each said fragment and the number of sectors used to store each said fragment.
Claim 29
Dependent Claim 16 words
The system of claim 25 wherein said fourth data structure is stored in the first fragment.
Claim 30
Dependent Claim 20 words
The system of claim 25 wherein said fourth data structure is stored in the first sector of said first fragment.
Claim 31
Dependent Claim 31 words
The system of claim 25 wherein said operating system identifies the sectors used to store each said fragment by reading said fourth data structure prior to accessing any of said fragments.
Claim 32
Dependent Claim 26 words
The system of claim 25 wherein said operating system accesses said fragments in a sequence based on the location of each said fragment on said disk.
Claim 33
Dependent Claim 203 words
A computer-readable medium on which is stored a program for storing at least one cluster of file data in a plurality of fragments of non-adjacent sectors on a disk, each cluster comprising a plurality of sectors, each sector being a fixed length capable of storing a predetermined, fixed number of bytes, the program comprising instructions which, when executed by the computer, perform the steps of: maintaining a first data structure having an entry for each file stored on the disk, each entry identifying the cluster in which the first portion of each respective file is stored; maintaining a second data structure having an entry for each cluster on the disk, each entry identifying another cluster in which the next portion of each respective file is stored; maintaining a third data structure having an entry for each cluster on the disk, each entry identifying the sectors used to store the data for each respective cluster, and each entry identifying whether the data for each respective cluster is stored in fragments; identifying the sectors used to store the data of each fragment; and placing entries in the first, second, and third data structures in accordance with the location of data stored in each separate cluster.
Claim 34
Dependent Claim 203 words
A computer-readable medium on which is stored a program for storing at least one cluster of file data in a plurality of fragments of non-adjacent sectors on a disk, each cluster comprising a plurality of sectors, each sector being a fixed length capable of storing a predetermined, fixed number of bytes, the program comprising instructions which, when executed by the computer, perform the steps of: maintaining a first data structure having an entry for each file stored on the disk, each entry identifying the cluster in which the first portion of each respective file is stored; maintaining a second data structure having an entry for each cluster on the disk, each entry identifying another cluster in which the next portion of each respective file is stored; maintaining a third data structure having an entry for each cluster on the disk, each entry identifying the sectors used to store the data for each respective cluster, and each entry identifying whether the data for each respective cluster is stored in fragments; identifying the sectors used to store the data of each fragment; and placing entries in the first, second, and third data structures in accordance with the location of data stored in each separate cluster.
Claim 35
Dependent Claim 33 words
The medium of claim 31 wherein each respective entry of the third data structure comprises a first field for identifying the first sector in which the data of each respective cluster is stored.
Claim 36
Dependent Claim 31 words
The medium of claim 31 wherein each respective entry of the third data structure comprises a second field for identifying whether the data of each respective cluster is stored in fragments.
Claim 37
Dependent Claim 66 words
The medium of claim 31 wherein each respective entry of the third data structure comprises a third field for identifying: the number of sectors used to store the data of each respective cluster, if a cluster is not stored in fragments; or the number of sectors used to store the data of the first fragment of each respective cluster, if a cluster is stored in fragments.
Claim 38
Dependent Claim 22 words
The medium of claim 31 wherein each respective entry of the third data structure is not greater than five bytes in length.
Claim 39
Dependent Claim 25 words
The medium of claim 32 wherein the first field of the third data structure is capable of identifying any one of over eight million sectors.
Claim 40
Dependent Claim 22 words
The medium of claim 32 wherein the first field of the third data structure is not greater than twenty-three bits in length.
Claim 41
Dependent Claim 19 words
The medium of claim 33 wherein the second field of the third data structure is one bit in length.
Claim 42
Dependent Claim 26 words
The medium of claim 34 wherein the third field of the third data structure is capable of identifying up to sixty-four sectors for each respective cluster.
Claim 43
Dependent Claim 22 words
The medium of claim 34 wherein the third field of the third data structure is not greater than six bits in length.
Claim 44
Dependent Claim 20 words
The medium of claim 31 wherein the sectors used to store each fragment are identified in a fourth data structure.
Claim 45
Dependent Claim 27 words
The medium of claim 41 wherein the fourth data structure identifies the first sector of each fragment and the number of sectors used to store each fragment.
Claim 46
Dependent Claim 16 words
The medium of claim 41 wherein the fourth data structure is stored in the first fragment.
Claim 47
Dependent Claim 20 words
The medium of claim 41 wherein the fourth data structure is stored in the first sector of the first fragment.

References Cited (Backward Citations)

US5506580A Cited
US5237675A Cited
US5551020A Cited
US5574907A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag