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

On-line dynamic file shrink facility

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1998-12-16
•
Granted: 2001-06-19
•
Expires: 2018-12-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An on-line dynamic shrink facility sets an allocation fence in a file and moves data from above the fence to below the fence. The fence is based on a target size for the file. When all the data above the fence is moved below the fence, the space above the fence is freed. The target size can be a specified size, an original size for the file when it was created, or a size calculated by examining the amount of space used and adding in an amount of desired free space. Resources that are required to move the data, such as old and new allocation units for the data, or that will be impacted by movement of the data, such as index entries, are locked or latched to prevent corruption of the data while it is being moved. The operations are performed in discreet transactions which are immediately committed to minimize the impact on other users of the file.

Inventors

  • 👤 Michael Zwilling
  • 👤 Rande Blackman
  • 👤 Sameet Agarwal
  • 👤 Steven J. Lindell

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 20:58
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/10; G06F16/16; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99952; Y10S707/99953; Y10S707/99956

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 67 words
A computerized method for shrinking a file that is subdivided into allocation units comprising: determining a target size for the file; setting an allocation fence address for the file, wherein the allocation fence address corresponds to the target size; moving data stored in each allocation unit above the fence address to an allocation unit below the fence address; and deleting the allocation units above the fence address.
Claim 2
Dependent Claim 67 words
A computerized method for shrinking a file that is subdivided into allocation units comprising: determining a target size for the file; setting an allocation fence address for the file, wherein the allocation fence address corresponds to the target size; moving data stored in each allocation unit above the fence address to an allocation unit below the fence address; and deleting the allocation units above the fence address.
Claim 3
Dependent Claim 61 words
The computerized method of claim 1 , wherein determining the target size comprises: estimating the target size based on a number of allocation units having data stored therein; comparing the estimated target size to an original size for the file when it was created; and setting the target size to the greater of the estimated target size and the original size.
Claim 4
Dependent Claim 26 words
The computerized method of claim 2 , wherein the estimated target size is further based on a number of allocation units having no data stored therein.
Claim 5
Dependent Claim 50 words
The computerized method of claim 1 , further comprising: scanning the allocation units above the fence address when all the data have been moved to allocation units below the fence; and moving any new data stored in an allocation unit above the fence to an allocation unit above the fence.
Claim 6
Dependent Claim 34 words
The computerized method of claim 1 , wherein moving the data comprises: examining each allocation unit above the fence starting at a tail of the file and terminating when the fence address is reached.
Claim 7
Dependent Claim 31 words
The computerized method of claim 1 , wherein the data on an allocation unit is one of a plurality of data types and the data is moved based on the type.
Claim 8
Dependent Claim 33 words
The computerized method of claim 6 , further comprising: if the type of the data is heap data, deleting the data; reinserting the deleted data; and dellocating the allocation unit above the page.
Claim 9
Dependent Claim 62 words
The computerized method of claim 6 , further comprising: if the type of the data is clustered data, extracting a cluster key from the data; searching a key structure to find a lowest parent for the data based on the cluster key; moving the data below the fence; updating links to the lowest parent; and deallocating the allocation unit above the fence.
Claim 10
Dependent Claim 38 words
The computerized method of claim 6 , further comprising: if the type of the data is text data, deleting the data on each allocation unit above the fence that contains related text data; and reinserting the deleted data.
Claim 11
Dependent Claim 64 words
The computerized method of claim 6 , further comprising: if the type of the data is intermediate index node data, extracting an index key from the data; searching a key structure to find a lowest parent for the data based on the index key; moving the data below the fence; updating links to the lowest parent; and deallocating the allocation unit above the fence.
Claim 12
Dependent Claim 37 words
The computerize method of claim 6 , further comprising: if the type of the data is root index node data, moving the data on each allocation unit above the fence that contains related root index node data.
Claim 13
Dependent Claim 31 words
The computerized method of claim 6 , further comprising: if the type of the data is logical log data, moving the data and deleting the allocation units in a deferred manner.
Claim 14
Dependent Claim 28 words
The computerized method of claim 12 , wherein determining the target size comprises: calculating an amount of space used during a set time period as the target size.
Claim 15
Dependent Claim 30 words
The computerize method of claim 1 , further comprising: securing exclusive use of the data before moving the data; and releasing the data from exclusive use after moving the data.
Claim 16
Dependent Claim 64 words
A computer-readable medium having computer-executable modules comprising: a set fence module that places an allocation fence in a file; a compress to fence module that scans the file from a tail end until the fence; and a move page module that moves data in the file above the fence to below the fence when the compress to fence module finds data above the fence.
Claim 17
Dependent Claim 64 words
A computer-readable medium having computer-executable modules comprising: a set fence module that places an allocation fence in a file; a compress to fence module that scans the file from a tail end until the fence; and a move page module that moves data in the file above the fence to below the fence when the compress to fence module finds data above the fence.
Claim 18
Dependent Claim 41 words
The computer-readable medium of claim 15 , further comprising a plurality of move modules specific to a type of data that are invoked by the move page module when a corresponding data type is found by the compress to fence module.
Claim 19
Dependent Claim 63 words
The computer-readable medium of claim 15 , wherein the plurality of move modules comprise: a move index page module that moves index data below the fence; a move head page module that moves heap data below the fence; a move text page module that moves text data below the fence; and a move allocation page module that move allocation data below the fence.
Claim 20
Dependent Claim 98 words
A computerized system comprising: a processing unit; a system memory coupled to the processing unit through a system bus; a computer-readable medium coupled to the processing unit through a system bus; and a shrink facility executed from the computer-readable medium by the processing unit, wherein the shrink facility causes the processing unit to place an allocation fence in a file, scan the file from a tail end to the allocation fence, move data found in the file allocation units above the fence to file allocation units below the fence, and delete the file allocation units above the fence.
Claim 21
Dependent Claim 98 words
A computerized system comprising: a processing unit; a system memory coupled to the processing unit through a system bus; a computer-readable medium coupled to the processing unit through a system bus; and a shrink facility executed from the computer-readable medium by the processing unit, wherein the shrink facility causes the processing unit to place an allocation fence in a file, scan the file from a tail end to the allocation fence, move data found in the file allocation units above the fence to file allocation units below the fence, and delete the file allocation units above the fence.
Claim 22
Dependent Claim 44 words
The computerized system of claim 18 , flirther comprising: a file allocation manager executed from the computer-readable by the processing unit, wherein the file allocation manager is coupled to the shrink facility and is responsive to the allocation fence being placed in the file.
Claim 23
Dependent Claim 33 words
The computerized system of claim 19 , wherein the shrink facility invokes the file allocation unit to cause the processing unit to allocate appropriate new allocation units in the file below the fence.
Claim 24
Dependent Claim 39 words
The computerized system of 19 , wherein the file allocation manager causes the processing unit to move the allocation fence toward the tail of the file when data to be stored in the file cannot fit below the fence.
Claim 25
Dependent Claim 39 words
The computerized system of 19 , wherein the file allocation manager causes the processing unit to move the allocation fence toward the tail of the file when data to be stored in the file cannot fit below the fence.

References Cited (Backward Citations)

US5987580A Cited
US6049854A Cited
US6065020A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag