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

Method and apparatus for accessing a file that can be concurrently written

Assignee: Oracle International Corp
•
Filing: 1997-10-31
•
Granted: 2001-01-23
•
Expires: 2017-10-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus copies only the data that was in a computer file when the copying process began, allowing other processes to alter the file while it is being copied without introducing inconsistent data into the copy. The file is arranged into sections, with each section containing one or more blocks of data, with each block stored in the file with a serial number higher than the block stored before. The number of blocks in each section is read and stored, and the highest serial number is read and stored. As blocks are copied from a section of the source file into a destination file, the number of blocks in the section are counted, and the count is compared with the number of blocks that were in the section before the blocks were copied. Blocks that would cause the number of blocks in the section to exceed the number of blocks in the section before any blocks were copied are not copied to the destination file, avoiding new blocks added to the end of a section after the copying began. If any of the remaining blocks that would otherwise be copied into the destination file have a serial number greater than the highest serial number read before the blocks were copied, the destination file is discarded and the copying is repeated to avoid incorporating inconsistent data into the copy.

Inventors

  • 👤 Tuomas Pystynen
  • 👤 Gregory Pongracz

Bibliographic Details

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

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 289 words
An apparatus for accessing in a file comprising a plurality of sections, at least one block of data from each of the plurality of sections, the method comprising: a maximum block number retriever having an input operatively coupled to receive a number of a block in the file, the maximum block number retriever for storing the number received at the maximum block number retriever input and for providing at an output the number received at the maximum block number retriever input; a section number of blocks reader having a first input operatively coupled to receive a plurality of numbers, each of the numbers representing a number of blocks stored in one of the sections of the file, a second input operatively coupled to receive an indicator of a section, the section number of blocks reader for storing the plurality of numbers received at the section number of blocks reader first input and for providing at an output the number of blocks in the section corresponding to the indicator received at the second input; and a block scanner having an input/output operatively coupled to access a plurality of blocks in the file, a first input coupled to the maximum block number retriever output and a second input coupled to the section number of blocks reader output, the block scanner for, for each of at least one section, responsive to the number received at the block scanner first input, processing a first number of the blocks accessed at the block scanner input/output corresponding to the number received at the block scanner third input in a first manner, and for processing a second number of the blocks accessed at the block scanner input/output in a second manner different from the first manner.
Claim 2
Independent Claim 289 words
An apparatus for accessing in a file comprising a plurality of sections, at least one block of data from each of the plurality of sections, the method comprising: a maximum block number retriever having an input operatively coupled to receive a number of a block in the file, the maximum block number retriever for storing the number received at the maximum block number retriever input and for providing at an output the number received at the maximum block number retriever input; a section number of blocks reader having a first input operatively coupled to receive a plurality of numbers, each of the numbers representing a number of blocks stored in one of the sections of the file, a second input operatively coupled to receive an indicator of a section, the section number of blocks reader for storing the plurality of numbers received at the section number of blocks reader first input and for providing at an output the number of blocks in the section corresponding to the indicator received at the second input; and a block scanner having an input/output operatively coupled to access a plurality of blocks in the file, a first input coupled to the maximum block number retriever output and a second input coupled to the section number of blocks reader output, the block scanner for, for each of at least one section, responsive to the number received at the block scanner first input, processing a first number of the blocks accessed at the block scanner input/output corresponding to the number received at the block scanner third input in a first manner, and for processing a second number of the blocks accessed at the block scanner input/output in a second manner different from the first manner.
Claim 3
Dependent Claim 22 words
The apparatus of claim 1 wherein the block scanner reads the plurality of the blocks in the file at the first input/output.
Claim 4
Dependent Claim 185 words
The apparatus of claim 2 , wherein the block scanner comprises: a section block counter having an input coupled to the block scanner input, the section block counter for counting a number of a plurality of the blocks received at the section block counter input and providing an identifier of said number of blocks at an output; and a section block compare having a first input coupled to the block scanner input/output and a second input coupled to the section block counter output for receiving the number of blocks, the section block compare for identifying a section containing at least one block received at the block scanner input/output, providing at a first output coupled to the section number of blocks second input an identifier of the section identified, receiving at a third input coupled to the section number of blocks output a number of blocks for the section; comparing the count received at the second section block compare second input with the number received at the section block compare third input to produce a result, and providing at an output an indication of the result.
Claim 5
Dependent Claim 122 words
The apparatus of claim 2 , wherein: each block received at the block scanner input/output has a block number; the block scanner additionally comprises a maximum block number compare having a first input operatively coupled to receive at least one block number and a second input coupled to the block scanner first input to receive a boundary definition, the maximum block number compare for providing at an output having a first state and a second state responsive to a block number received at the block scanner input/output exceeding a boundary condition corresponding to the boundary definition received at the block scanner first input; and the block scanner processes the blocks responsive to the maximum block number compare output in the first state.
Claim 6
Dependent Claim 31 words
The apparatus of claim 4 , wherein processing in the first manner comprises storing into an output file, and processing in the second manner comprises not storing into the output file.
Claim 7
Dependent Claim 92 words
The apparatus of claim 5 , wherein the block scanner comprises an output for providing at least zero of the blocks received at the block scanner input/output, the apparatus additionally comprising: a file storage having an input/output coupled to the block scanner output, the file storage for storing the output file; and a file deleter having an output coupled to the file storage input/output and an input coupled to the maximum block number compare output, the file deleter for deleting the file responsive to the file deleter input in the second state.
Claim 8
Dependent Claim 132 words
A computer program product comprising a computer useable medium having computer readable program code embodied therein for accessing in a file comprising a plurality of sections, each of the sections comprising at least one block of data, the computer program product comprising: computer readable program code devices configured to cause a computer to read a first number corresponding to a highest numbered block in the file; computer readable program code devices configured to cause a computer to, for each of a plurality of the sections, read a second number corresponding to a number of the blocks in said section; and computer readable program code devices configured to cause a computer to, for each of a plurality of the sections, access at least a number of the blocks corresponding to the second number.
Claim 9
Dependent Claim 132 words
A computer program product comprising a computer useable medium having computer readable program code embodied therein for accessing in a file comprising a plurality of sections, each of the sections comprising at least one block of data, the computer program product comprising: computer readable program code devices configured to cause a computer to read a first number corresponding to a highest numbered block in the file; computer readable program code devices configured to cause a computer to, for each of a plurality of the sections, read a second number corresponding to a number of the blocks in said section; and computer readable program code devices configured to cause a computer to, for each of a plurality of the sections, access at least a number of the blocks corresponding to the second number.
Claim 10
Dependent Claim 58 words
The computer program product of claim 7 additionally comprising computer readable program code devices configured to cause a computer to, for each of a plurality of the sections: process in a first manner a number of blocks corresponding to the second number; and process in a second manner a number of blocks in excess of the second number.
Claim 11
Dependent Claim 42 words
The computer program product of claim 8 wherein the computer readable program code devices configured to cause a computer to process in the first manner comprise computer readable program code devices configured to cause a computer to write to a first file.
Claim 12
Dependent Claim 54 words
The computer program product of claim 9 wherein the computer readable program code devices configured to cause a computer to process in the second manner comprises computer readable program code devices configured to cause a computer to at least one selected from discard and write to a second file different from the first file.
Claim 13
Dependent Claim 80 words
The computer program product of claim 8 , wherein each block has a number, and the computer program product additionally comprises: computer readable program code devices configured to cause a computer to read at least one block number corresponding to a block accessed; and computer readable program code devices configured to cause a computer to, responsive to the block number read in excess of the first number, repeat the operation of at least a portion of the computer program product.
Claim 14
Dependent Claim 59 words
The computer program product of claim 8 additionally comprising: computer readable program code devices configured to cause a computer to read an inhibit flag having a first state and a second state; and computer readable program code devices configured to cause a computer to, responsive to the inhibit flag in the first state, wait for a period of time.
Claim 15
Independent Claim 69 words
A method of accessing a file comprising a plurality of blocks of data, at least one block comprising an identifier of the block, the method comprising: reading data describing the file; reading at least one of the plurality of blocks of data; and detecting a change in the file responsive to the reading data step and the reading at least one of the plurality of blocks of data step.
Claim 16
Independent Claim 69 words
A method of accessing a file comprising a plurality of blocks of data, at least one block comprising an identifier of the block, the method comprising: reading data describing the file; reading at least one of the plurality of blocks of data; and detecting a change in the file responsive to the reading data step and the reading at least one of the plurality of blocks of data step.
Claim 17
Dependent Claim 38 words
The method of claim 13 , wherein the reading the data describing the file comprises, for each of a plurality of sections of the file, reading a number corresponding to a number of the blocks in said section.
Claim 18
Dependent Claim 45 words
The method of claim 14 comprising the additional steps of, for each of a plurality of the sections: processing in a first manner a number of blocks corresponding to the number read; and processing in a second manner blocks in excess of the number read.
Claim 19
Dependent Claim 17 words
The method of claim 15 wherein processing in the first manner comprises writing to a first file.
Claim 20
Dependent Claim 29 words
The method of claim 16 wherein processing in the second manner comprises at least one selected from discarding and writing to a second file different from the first file.
Claim 21
Dependent Claim 38 words
The method of claim 15 comprising the additional step of: reading an inhibit flag having a first state and a second state; and responsive to the inhibit flag in the first state, waiting for a period of time.
Claim 22
Dependent Claim 81 words
The method of claim 13 , wherein: the block identifier comprises a number; the reading the data describing the file comprises reading a number corresponding to a number of blocks in the file; the reading at least one of the plurality of blocks of data comprises reading at least one block number corresponding to a block read; and responsive to the block number read in excess of the number corresponding to the number of blocks in the file repeating the method.
Claim 23
Dependent Claim 138 words
A computer program product comprising a computer useable medium having computer readable program code embodied therein for accessing a file comprising a plurality of blocks of data, at least one block comprising an identifier of the block, the computer program product comprising: the computer readable program code devices configured to cause a computer to read data describing the file; the computer readable program code devices configured to cause a computer to read at least one of the plurality of blocks of data; and the computer readable program code devices configured to cause a computer to detect a change in the file responsive to the computer readable program code devices configured to cause a computer to read the data and the computer readable program code devices configured to cause a computer to read the plurality of blocks of data.
Claim 24
Dependent Claim 138 words
A computer program product comprising a computer useable medium having computer readable program code embodied therein for accessing a file comprising a plurality of blocks of data, at least one block comprising an identifier of the block, the computer program product comprising: the computer readable program code devices configured to cause a computer to read data describing the file; the computer readable program code devices configured to cause a computer to read at least one of the plurality of blocks of data; and the computer readable program code devices configured to cause a computer to detect a change in the file responsive to the computer readable program code devices configured to cause a computer to read the data and the computer readable program code devices configured to cause a computer to read the plurality of blocks of data.

References Cited (Backward Citations)

US5488718A Cited
US5850507A Cited
US5926821A Cited
US6081812A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag