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

Computer method and apparatus for file system block allocation with multiple redo

Assignee: Digital Equipment Corp
•
Filing: 1998-06-15
•
Granted: 2001-02-06
•
Expires: 2018-06-15
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A shared persistent memory (e.g., disk) file system provides persistent memory block allocation with multiple redo logging of memory blocks. The file system employs a three part block state indicator (V,A,U). V is a volume indication. A is allocation sequence indication. U is update sequence number indication. The file system (a) generates indication of the allocation sequence in the allocation map in a manner free of initially reading the block from storage memory, (b) records the indication of volume, allocation sequence and update sequence in an entry of the transaction log of the requesting computer node, and (c) sets indications of volume, allocation sequence and update sequence on the subject block in storage memory. Subsequent transactions on the subject block, by the requesting node are recorded in respective entries in the transaction log. Each respective entry reflects state of the subject block by indicating in the block state indicator the volume, allocation sequence and order of update sequence. The file system includes redo recovery means for updating blocks in the storage memory upon a failure in the computer system. For each block being updated, the recovery means utilizes one transaction log and the block state indicators recorded therein corresponding to indications of volume and update sequence in the block in storage memory.

Inventors

  • 👤 Robert Burke

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 14:02
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1471; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99952; Y10S707/99953

Claims Analysis

Total Claims: 35
Claim 1
Independent Claim 277 words
In a computer system having a plurality of computer nodes sharing a storage memory formed of a plurality of blocks, a file system comprising: an allocation map for indicating use of blocks in the storage memory; a plurality of transaction logs, a different transaction log for each computer node, for recording a sequence of data transactions by the computer node on a block from the storage memory, each transaction log formed of a plurality of entries, a different entry for each data transaction of the respective computer node; a block state indicator for each transaction log entry, the block state indicator being with respect to a subject block from the storage memory and providing an indication of allocation sequence of the block, the indication of allocation sequence being determinable from the allocation map such that upon the file system allocating usage of the subject block in response to a requesting computer node, the file system (a) sets indication of the allocation sequence in a manner free of initially reading the block from the storage memory, and (b) records the indication of allocation sequence in an entry of the transaction log of the requesting computer node, subsequent transactions on the subject block by the requesting node being recorded in respective entries in the transaction log, each respective entry reflecting state of the subject block by indicating in the block state indicator the allocation sequence; and recovery means for updating blocks in the storage memory upon a failure in the computer system, for each block being updated, the recovery means using one transaction log and the block state indicators recorded therein corresponding to the block in the storage memory.
Claim 2
Dependent Claim 277 words
In a computer system having a plurality of computer nodes sharing a storage memory formed of a plurality of blocks, a file system comprising: an allocation map for indicating use of blocks in the storage memory; a plurality of transaction logs, a different transaction log for each computer node, for recording a sequence of data transactions by the computer node on a block from the storage memory, each transaction log formed of a plurality of entries, a different entry for each data transaction of the respective computer node; a block state indicator for each transaction log entry, the block state indicator being with respect to a subject block from the storage memory and providing an indication of allocation sequence of the block, the indication of allocation sequence being determinable from the allocation map such that upon the file system allocating usage of the subject block in response to a requesting computer node, the file system (a) sets indication of the allocation sequence in a manner free of initially reading the block from the storage memory, and (b) records the indication of allocation sequence in an entry of the transaction log of the requesting computer node, subsequent transactions on the subject block by the requesting node being recorded in respective entries in the transaction log, each respective entry reflecting state of the subject block by indicating in the block state indicator the allocation sequence; and recovery means for updating blocks in the storage memory upon a failure in the computer system, for each block being updated, the recovery means using one transaction log and the block state indicators recorded therein corresponding to the block in the storage memory.
Claim 3
Dependent Claim 31 words
A file system as claimed in claim 1 wherein the allocation map includes a file allocation map and a block allocation map, the file allocation map indicating use of metadata blocks.
Claim 4
Dependent Claim 140 words
A file system as claimed in claim 2 further comprising: a first counter coupled to the transaction logs for determining an update sequence, the first counter increasing each time a computer node transaction on a subject block occurs, and increasing in order from one corresponding transaction log entry to a succeeding one; and a second counter coupled to the allocation map for determining the allocation sequence, the second counter incrementing each time a computer node of the computer system causes a block to be allocated, such that for the subject block, the transaction log entries recording requesting computer node transactions on the subject block indicate a same allocation sequence throughout the block state indicators of those transaction log entries while the corresponding update sequence indication is sequentially increased from a first one of said transaction log entries to succeeding ones.
Claim 5
Dependent Claim 581 words
In a computer system having a plurality of computer nodes sharing a storage memory formed of a plurality of blocks, a file system comprising: an allocation map for indicating use of blocks in the storage memory; a plurality of transaction logs, a different transaction log for each computer node, for recording a sequence of data transactions by the computer node on a block from the storage memory, each transaction log formed of a plurality of entries, a different entry for each data transaction of the respective computer node; a block state indicator for each transaction log entry, the block state indicator being with respect to a subject block from the storage memory and providing an indication of allocation sequence of the block, the indication of allocation sequence being determinable from the allocation map such that upon the file system allocating usage of the subject block in response to a requesting computer node, the file system (a) sets indication of the allocation sequence in a manner free of initially reading the block from the storage memory, and (b) records the indication of allocation sequence in an entry of the transaction log of the requesting computer node, subsequent transactions on the subject block by the requesting node being recorded in respective entries in the transaction log, each respective entry reflecting state of the subject block by indicating in the block state indicator the allocation sequence; a first counter coupled to the transaction logs for determining an update sequence, the first counter increasing each time a computer node transaction on a subject block occurs, and increasing in order from one corresponding transaction log entry to a succeeding one; a second counter coupled to the allocation map for determining the allocation sequence, the second counter incrementing each time a computer node of the computer system causes a block to be allocated, such that for the subject block, the transaction log entries recording requesting computer node transactions on the subject block indicate a same allocation sequence throughout the block state indicators of those transaction log entries while the corresponding update sequence indication is sequentially increased from a first one of said transaction log entries to succeeding ones; recovery means for updating blocks in the storage memory upon a failure in the computer system, for each block being updated, the recovery means using one transaction log and the block state indicators recorded therein corresponding to the block in the storage memory; wherein the allocation map includes a file allocation map and a block allocation map, the file allocation map indicating use of metadata blocks, and wherein: the block state indicator provides an indication of (i) volume, (ii) the allocation sequence, and (iii) the update sequence of the block; the file system sets indications of volume, allocation sequence and update sequence on the subject block in the storage memory; and the recovery means updates a block in the storage memory according to a transaction log entry if [V′=V and A′>A] or [V′=V and A′=A and U′=(U+1) mod W] where U′ is the update sequence indication in the transaction log entry; V′ is the volume indication in the transaction log entry; A′ is the allocation sequence indication in the transaction log entry; V is the volume indication of the block in the storage memory; A is the allocation sequence indication in the block in the storage memory; U is the update sequence indication of the block in the storage memory; and W is word size in the computer system.
Claim 6
Dependent Claim 581 words
In a computer system having a plurality of computer nodes sharing a storage memory formed of a plurality of blocks, a file system comprising: an allocation map for indicating use of blocks in the storage memory; a plurality of transaction logs, a different transaction log for each computer node, for recording a sequence of data transactions by the computer node on a block from the storage memory, each transaction log formed of a plurality of entries, a different entry for each data transaction of the respective computer node; a block state indicator for each transaction log entry, the block state indicator being with respect to a subject block from the storage memory and providing an indication of allocation sequence of the block, the indication of allocation sequence being determinable from the allocation map such that upon the file system allocating usage of the subject block in response to a requesting computer node, the file system (a) sets indication of the allocation sequence in a manner free of initially reading the block from the storage memory, and (b) records the indication of allocation sequence in an entry of the transaction log of the requesting computer node, subsequent transactions on the subject block by the requesting node being recorded in respective entries in the transaction log, each respective entry reflecting state of the subject block by indicating in the block state indicator the allocation sequence; a first counter coupled to the transaction logs for determining an update sequence, the first counter increasing each time a computer node transaction on a subject block occurs, and increasing in order from one corresponding transaction log entry to a succeeding one; a second counter coupled to the allocation map for determining the allocation sequence, the second counter incrementing each time a computer node of the computer system causes a block to be allocated, such that for the subject block, the transaction log entries recording requesting computer node transactions on the subject block indicate a same allocation sequence throughout the block state indicators of those transaction log entries while the corresponding update sequence indication is sequentially increased from a first one of said transaction log entries to succeeding ones; recovery means for updating blocks in the storage memory upon a failure in the computer system, for each block being updated, the recovery means using one transaction log and the block state indicators recorded therein corresponding to the block in the storage memory; wherein the allocation map includes a file allocation map and a block allocation map, the file allocation map indicating use of metadata blocks, and wherein: the block state indicator provides an indication of (i) volume, (ii) the allocation sequence, and (iii) the update sequence of the block; the file system sets indications of volume, allocation sequence and update sequence on the subject block in the storage memory; and the recovery means updates a block in the storage memory according to a transaction log entry if [V′=V and A′>A] or [V′=V and A′=A and U′=(U+1) mod W] where U′ is the update sequence indication in the transaction log entry; V′ is the volume indication in the transaction log entry; A′ is the allocation sequence indication in the transaction log entry; V is the volume indication of the block in the storage memory; A is the allocation sequence indication in the block in the storage memory; U is the update sequence indication of the block in the storage memory; and W is word size in the computer system.
Claim 7
Dependent Claim 16 words
A file system as claimed in claim 4 wherein the term U′=(U+1) mod W is U′>U.
Claim 8
Dependent Claim 85 words
A file system as claimed in claim 5 further comprising a wild-card block state indicator enabling update of a block in storage memory having a random block state indicator, and wherein the recovery means further updates a block in the storage memory according to a transaction log entry if [V′≠V and U′=0] where V′ is the volume indicator in the transaction log entry; U′ is the update sequence indication in the transaction log entry; and V is the volume indication of the block being updated.
Claim 9
Dependent Claim 84 words
A file system as claimed in claim 4 further comprising a wild-card block state indicator enabling update of a block having a random block state indicator in storage memory, and wherein the recovery means updates a block in the storage memory according to a transaction log entry if [V′≠V and U′=0] where V′ is the volume indicator in the transaction log entry; U′ is the update sequence indication in the transaction log entry; and V is the volume indication of the block being updated.
Claim 10
Dependent Claim 140 words
A file system as claimed in claim 1 further comprising: a first counter coupled to the transaction logs for determining an update sequence, the first counter increasing each time a computer node transaction on a subject block occurs, and increasing in order from one corresponding transaction log entry to a succeeding one; and a second counter coupled to the allocation map for determining the allocation sequence, the second counter incrementing each time a computer node of the computer system causes a block to be allocated, such that for the subject block, the transaction log entries recording requesting computer node transactions on the subject block indicate a same allocation sequence throughout the block state indicators of those transaction log entries while the corresponding update sequence indication is sequentially increased from a first one of said transaction log entries to succeeding ones.
Claim 11
Dependent Claim 558 words
In a computer system having a plurality of computer nodes sharing a storage memory formed of a plurality of blocks, a file system comprising: an allocation map for indicating use of blocks in the storage memory; a plurality of transaction logs, a different transaction log for each computer node, for recording a sequence of data transactions by the computer node on a block from the storage memory, each transaction log formed of a plurality of entries, a different entry for each data transaction of the respective computer node; a block state indicator for each transaction log entry, the block state indicator being with respect to a subject block from the storage memory and providing an indication of allocation sequence of the block, the indication of allocation sequence being determinable from the allocation map such that upon the file system allocating usage of the subject block in response to a requesting computer node, the file system (a) sets indication of the allocation sequence in a manner free of initially reading the block from the storage memory, and (b) records the indication of allocation sequence in an entry of the transaction log of the requesting computer node, subsequent transactions on the subject block by the requesting node being recorded in respective entries in the transaction log, each respective entry reflecting state of the subject block by indicating in the block state indicator the allocation sequence; a first counter coupled to the transaction logs for determining an update sequence, the first counter increasing each time a computer node transaction on a subject block occurs, and increasing in order from one corresponding transaction log entry to a succeeding one; a second counter coupled to the allocation map for determining the allocation sequence, the second counter incrementing each time a computer node of the computer system causes a block to be allocated, such that for the subject block, the transaction log entries recording requesting computer node transactions on the subject block indicate a same allocation sequence throughout the block state indicators of those transaction log entries while the corresponding update sequence indication is sequentially increased from a first one of said transaction log entries to succeeding ones; recovery means for updating blocks in the storage memory upon a failure in the computer system, for each block being updated, the recovery means using one transaction log and the block state indicators recorded therein corresponding to the block in the storage memory; and wherein: the block state indicator provides an indication of (i) volume, (ii) the allocation sequence, and (iii) the update sequence of the block; the file system sets indications of volume, allocation sequence and update sequence on the subject block in the storage memory; and the recovery means updates a block in the storage memory according to a transaction log entry if [V′=V and A′>A] or [V′=V and A′=A and U′=(U+1) mod W] where U′ is the update sequence indication in the transaction log entry; V′ is the volume indication in the transaction log entry; A′ is the allocation sequence indication in the transaction log entry; V is the volume indication of the block in the storage memory; A is the allocation sequence indication of the block in the storage memory; U is the update sequence indication of the block in the storage memory; and W is word size in the computer system.
Claim 12
Dependent Claim 558 words
In a computer system having a plurality of computer nodes sharing a storage memory formed of a plurality of blocks, a file system comprising: an allocation map for indicating use of blocks in the storage memory; a plurality of transaction logs, a different transaction log for each computer node, for recording a sequence of data transactions by the computer node on a block from the storage memory, each transaction log formed of a plurality of entries, a different entry for each data transaction of the respective computer node; a block state indicator for each transaction log entry, the block state indicator being with respect to a subject block from the storage memory and providing an indication of allocation sequence of the block, the indication of allocation sequence being determinable from the allocation map such that upon the file system allocating usage of the subject block in response to a requesting computer node, the file system (a) sets indication of the allocation sequence in a manner free of initially reading the block from the storage memory, and (b) records the indication of allocation sequence in an entry of the transaction log of the requesting computer node, subsequent transactions on the subject block by the requesting node being recorded in respective entries in the transaction log, each respective entry reflecting state of the subject block by indicating in the block state indicator the allocation sequence; a first counter coupled to the transaction logs for determining an update sequence, the first counter increasing each time a computer node transaction on a subject block occurs, and increasing in order from one corresponding transaction log entry to a succeeding one; a second counter coupled to the allocation map for determining the allocation sequence, the second counter incrementing each time a computer node of the computer system causes a block to be allocated, such that for the subject block, the transaction log entries recording requesting computer node transactions on the subject block indicate a same allocation sequence throughout the block state indicators of those transaction log entries while the corresponding update sequence indication is sequentially increased from a first one of said transaction log entries to succeeding ones; recovery means for updating blocks in the storage memory upon a failure in the computer system, for each block being updated, the recovery means using one transaction log and the block state indicators recorded therein corresponding to the block in the storage memory; and wherein: the block state indicator provides an indication of (i) volume, (ii) the allocation sequence, and (iii) the update sequence of the block; the file system sets indications of volume, allocation sequence and update sequence on the subject block in the storage memory; and the recovery means updates a block in the storage memory according to a transaction log entry if [V′=V and A′>A] or [V′=V and A′=A and U′=(U+1) mod W] where U′ is the update sequence indication in the transaction log entry; V′ is the volume indication in the transaction log entry; A′ is the allocation sequence indication in the transaction log entry; V is the volume indication of the block in the storage memory; A is the allocation sequence indication of the block in the storage memory; U is the update sequence indication of the block in the storage memory; and W is word size in the computer system.
Claim 13
Dependent Claim 16 words
A file system as claimed in claim 9 wherein the term U′=(U+1) mod W is U′>U.
Claim 14
Dependent Claim 96 words
A file system as claimed in claim 10 further comprising a wild-card block state indicator for enabling a certain transaction log entry to update any block in the storage memory, and wherein upon a failure in the computer system, the recovery means further updates a block in the storage memory according to the certain transaction log entry if V′≠V and U′=0 where V′ is the volume indication of the certain transaction log entry; U′ is the update sequence indication in the certain transaction log entry; and V is the volume indication of the block being updated.
Claim 15
Dependent Claim 88 words
A file system as claimed in claim 9 further comprising a wild-card block state indicator for enabling a certain transaction log entry to update any block in the storage memory, and wherein the recovery means further updates blocks in the storage memory according to the certain transaction log entry if V′≠V and U′=0 where V′ is the volume indication of the certain transaction log entry; U′ is the update sequence indication in the certain transaction log entry; and V is the volume indication of the block being updated.
Claim 16
Dependent Claim 297 words
In a computer system having a plurality of computer nodes sharing a storage memory, a method for allocating and updating blocks in the storage memory, the method comprising the steps of: using an allocation map, indicating use of blocks in the storage memory; providing a plurality of transaction logs, a different transaction log for each computer node, each transaction log formed of a plurality of entries; recording in the transaction log of a computer node a sequence of data transactions, by the computer node on a block from the storage memory, for each different transaction, the transaction being recorded in a different entry of the transaction log; indicating block state in each transaction log entry, the block state being with respect to a subject block from the storage memory, said indicating providing an indication of allocation sequence of the block; upon allocation of the subject block in response to a requesting computer node, (a) determining from the allocation map the allocation sequence of the block, in a manner free of initially reading the block from the storage memory, and (b) recording the indication of allocation sequence in an entry of the transaction log of the requesting computer node and in the subject block in the storage memory; in each of subsequent transactions on the subject block by the requesting node, recording the transaction in a respective entry in the transaction log including in each respective entry reflecting state of the subject block by indicating the allocation sequence of the block as recorded in the block in the storage memory; and updating blocks in the storage memory upon a failure in the computer system, for each block being updated, using one transaction log and the block state indications recorded therein corresponding to the block in the storage memory.
Claim 17
Dependent Claim 297 words
In a computer system having a plurality of computer nodes sharing a storage memory, a method for allocating and updating blocks in the storage memory, the method comprising the steps of: using an allocation map, indicating use of blocks in the storage memory; providing a plurality of transaction logs, a different transaction log for each computer node, each transaction log formed of a plurality of entries; recording in the transaction log of a computer node a sequence of data transactions, by the computer node on a block from the storage memory, for each different transaction, the transaction being recorded in a different entry of the transaction log; indicating block state in each transaction log entry, the block state being with respect to a subject block from the storage memory, said indicating providing an indication of allocation sequence of the block; upon allocation of the subject block in response to a requesting computer node, (a) determining from the allocation map the allocation sequence of the block, in a manner free of initially reading the block from the storage memory, and (b) recording the indication of allocation sequence in an entry of the transaction log of the requesting computer node and in the subject block in the storage memory; in each of subsequent transactions on the subject block by the requesting node, recording the transaction in a respective entry in the transaction log including in each respective entry reflecting state of the subject block by indicating the allocation sequence of the block as recorded in the block in the storage memory; and updating blocks in the storage memory upon a failure in the computer system, for each block being updated, using one transaction log and the block state indications recorded therein corresponding to the block in the storage memory.
Claim 18
Dependent Claim 35 words
A method as claimed in claim 13 wherein the step of indicating use of blocks includes using a file allocation map and a block allocation map, the file allocation map indicating use of metadata blocks.
Claim 19
Dependent Claim 135 words
A method as claimed in claim 14 wherein the step of indicating block state includes (i) counting each time a computer node transaction occurs on a subject block, said counting providing an update sequence, and (ii) increasing the update sequence in order from one corresponding transaction log entry to a succeeding one; and the step of providing an indication of the allocation sequence includes counting each time a computer node of the computer system causes a block to be allocated, such that for the subject block, the transaction log entries recording requesting computer node transactions on the subject block indicate a same allocation sequence throughout the block state indications of those transaction log entries, while the corresponding update sequence indication is sequentially increased from a first one of said transaction log entries to succeeding ones.
Claim 20
Dependent Claim 578 words
In a computer system having a plurality of computer nodes sharing a storage memory, a method for allocating and updating blocks in the storage memory, the method comprising the steps of: using an allocation map, indicating use of blocks in the storage memory; providing a plurality of transaction logs, a different transaction log for each computer node, each transaction log formed of a plurality of entries; recording in the transaction log of a computer node a sequence of data transactions, by the computer node on a block from the storage memory, for each different transaction, the transaction being recorded in a different entry of the transaction log; indicating block state in each transaction log entry, the block state being with respect to a subject block from the storage memory, said indicating providing an indication of allocation sequence of the block; upon allocation of the subject block in response to a requesting computer node, (a) determining from the allocation map the allocation sequence of the block, in a manner free of initially reading the block from the storage memory, and (b) recording the indication of allocation sequence in an entry of the transaction log of the requesting computer node and in the subject block in the storage memory; in each of subsequent transactions on the subject block by the requesting node, recording the transaction in a respective entry in the transaction log including in each respective entry reflecting state of the subject block by indicating the allocation sequence of the block as recorded in the block in the storage memory; and updating blocks in the storage memory upon a failure in the computer system, for each block being updated, using one transaction log and the block state indications recorded therein corresponding to the block in the storage memory; wherein the step of indicating use of blocks includes using a file allocation map and a block allocation map, the file allocation map indicating use of metadata blocks, and wherein the step of indicating block state includes (i) counting each time a computer node transaction occurs on a subject block, said counting providing an update sequence, and (ii) increasing the update sequence in order from one corresponding transaction log entry to a succeeding one; wherein the step of providing an indication of the allocation sequence includes counting each time a computer node of the computer system causes a block to be allocated, such that for the subject block, the transaction log entries recording requesting computer node transactions on the subject block indicate a same allocation sequence throughout the block state indications of those transaction log entries, while the corresponding update sequence indication is sequentially increased from a first one of said transaction log entries to succeeding ones; and wherein: the step of indicating block state includes providing an indication of (i) volume, (ii) the allocation sequence and (iii) the update sequence of the block; further setting indication of volume and update sequence on the subject block in the storage memory upon allocation of the subject block; and the step of updating blocks using one transaction log per block being updated includes: comparing volume indication in the transaction log entry to volume indication of a subject block in the storage memory; comparing allocation sequence indication in the transaction entry to allocation sequence stored in the subject block in the storage memory; and comparing update sequence indication in the transaction log entry to update sequence indication of the block in the storage memory.
Claim 21
Dependent Claim 578 words
In a computer system having a plurality of computer nodes sharing a storage memory, a method for allocating and updating blocks in the storage memory, the method comprising the steps of: using an allocation map, indicating use of blocks in the storage memory; providing a plurality of transaction logs, a different transaction log for each computer node, each transaction log formed of a plurality of entries; recording in the transaction log of a computer node a sequence of data transactions, by the computer node on a block from the storage memory, for each different transaction, the transaction being recorded in a different entry of the transaction log; indicating block state in each transaction log entry, the block state being with respect to a subject block from the storage memory, said indicating providing an indication of allocation sequence of the block; upon allocation of the subject block in response to a requesting computer node, (a) determining from the allocation map the allocation sequence of the block, in a manner free of initially reading the block from the storage memory, and (b) recording the indication of allocation sequence in an entry of the transaction log of the requesting computer node and in the subject block in the storage memory; in each of subsequent transactions on the subject block by the requesting node, recording the transaction in a respective entry in the transaction log including in each respective entry reflecting state of the subject block by indicating the allocation sequence of the block as recorded in the block in the storage memory; and updating blocks in the storage memory upon a failure in the computer system, for each block being updated, using one transaction log and the block state indications recorded therein corresponding to the block in the storage memory; wherein the step of indicating use of blocks includes using a file allocation map and a block allocation map, the file allocation map indicating use of metadata blocks, and wherein the step of indicating block state includes (i) counting each time a computer node transaction occurs on a subject block, said counting providing an update sequence, and (ii) increasing the update sequence in order from one corresponding transaction log entry to a succeeding one; wherein the step of providing an indication of the allocation sequence includes counting each time a computer node of the computer system causes a block to be allocated, such that for the subject block, the transaction log entries recording requesting computer node transactions on the subject block indicate a same allocation sequence throughout the block state indications of those transaction log entries, while the corresponding update sequence indication is sequentially increased from a first one of said transaction log entries to succeeding ones; and wherein: the step of indicating block state includes providing an indication of (i) volume, (ii) the allocation sequence and (iii) the update sequence of the block; further setting indication of volume and update sequence on the subject block in the storage memory upon allocation of the subject block; and the step of updating blocks using one transaction log per block being updated includes: comparing volume indication in the transaction log entry to volume indication of a subject block in the storage memory; comparing allocation sequence indication in the transaction entry to allocation sequence stored in the subject block in the storage memory; and comparing update sequence indication in the transaction log entry to update sequence indication of the block in the storage memory.
Claim 22
Dependent Claim 114 words
A method as claimed in claim 16 wherein said steps of comparing include updating the subject block with a certain transaction log if and only if V′=V and A′>A; or V′=V and A′=A and U′=(U+1) mod W where U′ is the update sequence indication in the transaction log entry; V′ is the volume indication in the transaction log entry; A′ is the allocation sequence indication in the transaction log entry; V is the volume indication of the block in the storage memory; A is the allocation sequence indication in the block in the storage memory; U is the update sequence indication of the block in the storage memory; and W is computer word size.
Claim 23
Dependent Claim 96 words
A method as claimed in claim 17 further comprising the step of indicating a wild-card block state indicator in a certain transaction log entry, to enable the certain transaction log entry to update any block in the storage memory; and wherein, the steps of comparing further include updating the subject block with the certain transaction log entry if V′≠V and U′=0 where V′ is the volume indication of the certain transaction log entry; U′ is the update sequence indication in the certain transaction log entry; and V is the volume indication of the block being updated.
Claim 24
Dependent Claim 135 words
A method as claimed in claim 13 wherein the step of indicating block state includes (i) counting each time a computer node transaction occurs on a subject block, said counting providing an update sequence, and (ii) increasing the update sequence in order from one corresponding transaction log entry to a succeeding one; and the step of providing an indication of the allocation sequence includes counting each time a computer node of the computer system causes a block to be allocated, such that for the subject block, the transaction log entries recording requesting computer node transactions on the subject block indicate a same allocation sequence throughout the block state indications of those transaction log entries while the corresponding update sequence indication is sequentially increased from a first one of said transaction log entries to succeeding ones.
Claim 25
Dependent Claim 547 words
In a computer system having a plurality of computer nodes sharing a storage memory, a method for allocating and updating blocks in the storage memory, the method comprising the steps of: using an allocation map, indicating use of blocks in the storage memory; providing a plurality of transaction logs, a different transaction log for each computer node, each transaction log formed of a plurality of entries; recording in the transaction log of a computer node a sequence of data transactions, by the computer node on a block from the storage memory, for each different transaction, the transaction being recorded in a different entry of the transaction log; indicating block state in each transaction log entry, the block state being with respect to a subject block from the storage memory, said indicating providing an indication of allocation sequence of the block; upon allocation of the subject block in response to a requesting computer node, (a) determining from the allocation map the allocation sequence of the block, in a manner free of initially reading the block from the storage memory, and (b) recording the indication of allocation sequence in an entry of the transaction log of the requesting computer node and in the subject block in the storage memory; in each of subsequent transactions on the subject block by the requesting node, recording the transaction in a respective entry in the transaction log including in each respective entry reflecting state of the subject block by indicating the allocation sequence of the block as recorded in the block in the storage memory; updating blocks in the storage memory upon a failure in the computer system, for each block being updated, using one transaction log and the block state indications recorded therein corresponding to the block in the storage memory; wherein the step of indicating block state includes (i) counting each time a computer node transaction occurs on a subject block, said counting providing an update sequence, and (ii) increasing the update sequence in order from one corresponding transaction log entry to a succeeding one; the step of providing an indication of the allocation sequence includes counting each time a computer node of the computer system causes a block to be allocated, such that for the subject block, the transaction log entries recording requesting computer node transactions on the subject block indicate a same allocation sequence throughout the block state indications of those transaction log entries while the corresponding update sequence indication is sequentially increased from a first one of said transaction log entries to succeeding ones; and wherein: the step of indicating block state includes providing an indication of (i) volume, (ii) the allocation sequence and (iii) the update sequence of the block; further setting indication of volume and update sequence on the subject block in the storage memory upon allocation of the subject block; and the step of updating blocks using one transaction log per block being updated includes: comparing volume indication in the transaction log entry to volume indication of a subject block in the storage memory; comparing allocation sequence indication in the transaction entry to allocation sequence stored in the subject block in the storage memory; and comparing update sequence indication in the transaction log entry to update sequence indication of the block in the storage memory.
Claim 26
Dependent Claim 547 words
In a computer system having a plurality of computer nodes sharing a storage memory, a method for allocating and updating blocks in the storage memory, the method comprising the steps of: using an allocation map, indicating use of blocks in the storage memory; providing a plurality of transaction logs, a different transaction log for each computer node, each transaction log formed of a plurality of entries; recording in the transaction log of a computer node a sequence of data transactions, by the computer node on a block from the storage memory, for each different transaction, the transaction being recorded in a different entry of the transaction log; indicating block state in each transaction log entry, the block state being with respect to a subject block from the storage memory, said indicating providing an indication of allocation sequence of the block; upon allocation of the subject block in response to a requesting computer node, (a) determining from the allocation map the allocation sequence of the block, in a manner free of initially reading the block from the storage memory, and (b) recording the indication of allocation sequence in an entry of the transaction log of the requesting computer node and in the subject block in the storage memory; in each of subsequent transactions on the subject block by the requesting node, recording the transaction in a respective entry in the transaction log including in each respective entry reflecting state of the subject block by indicating the allocation sequence of the block as recorded in the block in the storage memory; updating blocks in the storage memory upon a failure in the computer system, for each block being updated, using one transaction log and the block state indications recorded therein corresponding to the block in the storage memory; wherein the step of indicating block state includes (i) counting each time a computer node transaction occurs on a subject block, said counting providing an update sequence, and (ii) increasing the update sequence in order from one corresponding transaction log entry to a succeeding one; the step of providing an indication of the allocation sequence includes counting each time a computer node of the computer system causes a block to be allocated, such that for the subject block, the transaction log entries recording requesting computer node transactions on the subject block indicate a same allocation sequence throughout the block state indications of those transaction log entries while the corresponding update sequence indication is sequentially increased from a first one of said transaction log entries to succeeding ones; and wherein: the step of indicating block state includes providing an indication of (i) volume, (ii) the allocation sequence and (iii) the update sequence of the block; further setting indication of volume and update sequence on the subject block in the storage memory upon allocation of the subject block; and the step of updating blocks using one transaction log per block being updated includes: comparing volume indication in the transaction log entry to volume indication of a subject block in the storage memory; comparing allocation sequence indication in the transaction entry to allocation sequence stored in the subject block in the storage memory; and comparing update sequence indication in the transaction log entry to update sequence indication of the block in the storage memory.
Claim 27
Dependent Claim 114 words
A method as claimed in claim 20 wherein said steps of comparing include updating the subject block with a certain transaction log if and only if V′=V and A′>A; or V′=V and A′=A and U′=(U+1) mod W where U′ is the update sequence indication in the transaction log entry; V′ is the volume indication in the transaction log entry; A′ is the allocation sequence indication in the transaction log entry; V is the volume indication of the block in the storage memory; A is the allocation sequence indication in the block in the storage memory; U is the update sequence indication of the block in the storage memory; and W is computer word size.
Claim 28
Dependent Claim 96 words
A method as claimed in claim 21 further comprising the step of indicating a wild-card block state indicator in a certain transaction log entry, to enable the certain transaction log entry to update any block in the storage memory; and wherein, the steps of comparing further include updating the subject block with the certain transaction log entry if V′≠V and U′=0 where V′ is the volume indication of the certain transaction log entry; U′ is the update sequence indication in the certain transaction log entry; and V is the volume indication of the block being updated.
Claim 29
Dependent Claim 53 words
A method as claimed in claim 22 further comprising the step of: upon deallocation of a block, effectively removing the certain transaction log entry having the wild-card block state indicator and corresponding to the newly deallocated block, such that the certain transaction log entry is omitted from updating blocks in the storage memory.
Claim 30
Dependent Claim 292 words
A computer readable medium encoding a digital processor routine for implementing a shared memory file system with memory block allocation and multiple redo update of memory blocks, the processor routine comprising: allocation map means for indicating use of blocks on the shared memory; a plurality of transaction logs, a different transaction log for each computer node, for recording a sequence of data transactions by the computer node on a block from a storage memory, each transaction log formed of a plurality of entries, a different entry for each data transaction of the respective computer node; a block state indicator for each transaction log entry, the block state indicator being with respect to a subject block from the storage memory and providing an indication of at least allocation sequence of the block, the indication of allocation sequence being provided by the allocation map such that upon the file system allocating usage of the subject block in response to a requesting computer node, the file system (a) sets indication of the allocation sequence in the allocation map in a manner free of initially reading the block from the storage memory, and (b) records the indication of allocation sequence in an entry of the transaction log of the requesting computer node, subsequent transactions on the subject block by the requesting node being recorded in respective entries in the transaction log, each respective entry reflecting state of the subject block by indicating in the block state indicator at least the allocation sequence; and recovery means for updating blocks in the storage memory upon a failure in the computer system, for each block being updated, the recovery means using one transaction log and the block state indicators recorded therein corresponding to the block in the storage memory.
Claim 31
Dependent Claim 292 words
A computer readable medium encoding a digital processor routine for implementing a shared memory file system with memory block allocation and multiple redo update of memory blocks, the processor routine comprising: allocation map means for indicating use of blocks on the shared memory; a plurality of transaction logs, a different transaction log for each computer node, for recording a sequence of data transactions by the computer node on a block from a storage memory, each transaction log formed of a plurality of entries, a different entry for each data transaction of the respective computer node; a block state indicator for each transaction log entry, the block state indicator being with respect to a subject block from the storage memory and providing an indication of at least allocation sequence of the block, the indication of allocation sequence being provided by the allocation map such that upon the file system allocating usage of the subject block in response to a requesting computer node, the file system (a) sets indication of the allocation sequence in the allocation map in a manner free of initially reading the block from the storage memory, and (b) records the indication of allocation sequence in an entry of the transaction log of the requesting computer node, subsequent transactions on the subject block by the requesting node being recorded in respective entries in the transaction log, each respective entry reflecting state of the subject block by indicating in the block state indicator at least the allocation sequence; and recovery means for updating blocks in the storage memory upon a failure in the computer system, for each block being updated, the recovery means using one transaction log and the block state indicators recorded therein corresponding to the block in the storage memory.
Claim 32
Dependent Claim 442 words
A computer readable medium encoding a digital processor routine for implementing a shared memory file system with memory block allocation and multiple redo update of memory blocks, the processor routine comprising: allocation map means for indicating use of blocks on the shared memory; a plurality of transaction logs, a different transaction log for each computer node, for recording a sequence of data transactions by the computer node on a block from a storage memory, each transaction log formed of a plurality of entries, a different entry for each data transaction of the respective computer node; a block state indicator for each transaction log entry, the block state indicator being with respect to a subject block from the storage memory and providing an indication of at least allocation sequence of the block, the indication of allocation sequence being provided by the allocation map such that upon the file system allocating usage of the subject block in response to a requesting computer node, the file system (a) sets indication of the allocation sequence in the allocation map in a manner free of initially reading the block from the storage memory, and (b) records the indication of allocation sequence in an entry of the transaction log of the requesting computer node, subsequent transactions on the subject block by the requesting node being recorded in respective entries in the transaction log, each respective entry reflecting state of the subject block by indicating in the block state indicator at least the allocation sequence; recovery means for updating blocks in the storage memory upon a failure in the computer system, for each block being updated, the recovery means using one transaction log and the block state indicators recorded therein corresponding to the block in the storage memory; and wherein: the block state indicator provides an indication of (i) volume, (ii) allocation sequence and (iii) update sequence of the block; the file system sets indications of volume, allocation sequence and update sequence on the subject block in the storage memory; and the recovery means updates a block in the storage memory according to a transaction log entry if [V′=V and A′>A] or [V′=V and A′=A and U′=(U+1) mod W] where U′ is the update sequence indication in the transaction log entry; V′ is the volume indication in the transaction log entry; A′ is the allocation sequence indication in the transaction log entry; V is the volume indication of the block in the storage memory; A is the allocation sequence indication in the block in the storage memory; U is the update sequence indication of the block in the storage memory; and W is word size in the computer system.
Claim 33
Dependent Claim 442 words
A computer readable medium encoding a digital processor routine for implementing a shared memory file system with memory block allocation and multiple redo update of memory blocks, the processor routine comprising: allocation map means for indicating use of blocks on the shared memory; a plurality of transaction logs, a different transaction log for each computer node, for recording a sequence of data transactions by the computer node on a block from a storage memory, each transaction log formed of a plurality of entries, a different entry for each data transaction of the respective computer node; a block state indicator for each transaction log entry, the block state indicator being with respect to a subject block from the storage memory and providing an indication of at least allocation sequence of the block, the indication of allocation sequence being provided by the allocation map such that upon the file system allocating usage of the subject block in response to a requesting computer node, the file system (a) sets indication of the allocation sequence in the allocation map in a manner free of initially reading the block from the storage memory, and (b) records the indication of allocation sequence in an entry of the transaction log of the requesting computer node, subsequent transactions on the subject block by the requesting node being recorded in respective entries in the transaction log, each respective entry reflecting state of the subject block by indicating in the block state indicator at least the allocation sequence; recovery means for updating blocks in the storage memory upon a failure in the computer system, for each block being updated, the recovery means using one transaction log and the block state indicators recorded therein corresponding to the block in the storage memory; and wherein: the block state indicator provides an indication of (i) volume, (ii) allocation sequence and (iii) update sequence of the block; the file system sets indications of volume, allocation sequence and update sequence on the subject block in the storage memory; and the recovery means updates a block in the storage memory according to a transaction log entry if [V′=V and A′>A] or [V′=V and A′=A and U′=(U+1) mod W] where U′ is the update sequence indication in the transaction log entry; V′ is the volume indication in the transaction log entry; A′ is the allocation sequence indication in the transaction log entry; V is the volume indication of the block in the storage memory; A is the allocation sequence indication in the block in the storage memory; U is the update sequence indication of the block in the storage memory; and W is word size in the computer system.
Claim 34
Dependent Claim 94 words
The processor routine of claim 25 further comprising a wild-card block state indicator for enabling a certain transaction log entry to update any block in the storage memory, and wherein upon a failure in the computer system, the recovery means further updates a block in the storage memory according to the certain transaction log entry if V′≠V and U′=0 where V′ is the volume indication of the certain transaction log entry; U′ is the update sequence indication in the certain transaction log entry; and V is the volume indication of the block being updated.
Claim 35
Dependent Claim 51 words
The processor routine of claim 26 further comprising a removal subroutine for, upon deallocation of a block, effectively removing the certain transaction log entry having the wild-card block state indicator and corresponding to the block, such that the certain transaction log entry is omitted from updating blocks in the storage memory.

References Cited (Backward Citations)

US5675767A Cited
US5742792A Cited
US5455946A Cited
US5435004A Cited
US5706470A Cited
US5893086A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag