IP Library Granted Patent US 8,667,029
Granted Patent B2
US 8,667,029 · App. 13/221,502 · Granted Mar 4, 2014

Optimized startup verification of file system integrity

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,667,029
App. No.
13/221,502
Granted
Mar 4, 2014
Kind
B2
Abstract

A computer system having a transaction based file system is disclosed. The computer system includes file system software that manages the file data and the file system structure of files stored on a persistent data storage device and maintains a transaction file that includes a plurality of transaction records. The file system software executes a startup process in which a reconstructed file system is generated in random access memory from the transaction records. The startup process may skip verification of some of the transactions. The file system software may error check at least one of the skipped transactions in response to a request to access a file identified by a file node record in the reconstructed filed system after the startup process is completed.

Claims (18)

1. A computer-implemented method comprising:

providing a file system structure of files on a persistent data storage device;

maintaining a transaction file on the persistent data storage device;

including a plurality of transaction records in the transaction file with a processor, each of the transaction records representing a file transaction that affects at least one of the files stored on the persistent data storage device; and

generating a reconstructed file system in a random access memory with the processor in a startup process from the transaction records and the file system structure of the files, where generating the reconstructed file system comprises generating a regenerated file hierarchy in the random access memory that includes a file node record for each file affected by the file transactions represented by the transaction records, where the file node record for each affected file identifies a corresponding physical location in the persistent data storage device that includes a transaction record representing at least one of the file transactions that affects a file identified by the file node record; and

error checking a data portion of the transaction record representing the at least one of the file transactions that affect the file identified by the file node record, the transaction record comprising the data portion and a metadata portion, where the transaction record is identified by the file node record and the data portion is error checked when the file identified by the file node record is first accessed after completion of the startup process.

2. The method of claim 1 where generating the reconstructed file system further comprises generating a plurality of transaction list records in the random access memory corresponding to the transaction records stored in the persistent data storage device, each of the transaction list records identifying a physical location in the persistent data storage device at which a corresponding one of the transaction records is stored.

3. The method of claim 2 where generating the reconstructed file system further comprises sorting the transaction list records in the random access memory in an order in which the corresponding file transactions are to be applied to the files.

4. The method of claim 3 where generating the reconstructed file system further comprises linking the transaction list records together that are related to a respective one of the affected files.

5. The method of claim 4 where error checking further comprises determining, for each of the affected files, whether the last occurring file transaction for the affected file was committed, and, in response to a determination that the last occurring file transaction was committed, removing or ignoring the corresponding transaction list record without checking whether the other file transactions related to the affected file were committed.

6. The method of claim 1 where generating the reconstructed file system further comprises generating a plurality of block records in the random access memory from a scan of the transaction records, each one of the block records identifying a corresponding device block of the persistent data storage device that includes at least one of the transaction records.

7. The method of claim 6 where generating the reconstructed file system further comprises generating, for each one of the block records, at least one transaction list record in the random access memory for each transaction record stored in the corresponding device block of the persistent data storage device, each of the at least one transaction list record identifying a physical location within the corresponding device block of the persistent data storage device at which each transaction record is stored, the at least one transaction list record included in a plurality of transaction list records.

8. The method of claim 7 where generating the regenerated file hierarchy further comprises generating the file node record in the random access memory for each file affected by the file transactions identified by the transaction list records, each file node record identifying an affected file within the file system, each file node record identifying a first of the transaction list records that relates to the affected file, the file node record identifying the corresponding physical location in the persistent data storage device that includes the transaction record corresponding to the first of the transaction list records through inclusion of a pointer in the file node record to the first of the transaction list records.

9. An apparatus comprising:

a persistent data storage device comprising a file system structure of files and a transaction file on the persistent data storage device, the transaction file comprising including a plurality of transaction records, each of the transaction records representing a file transaction that affects at least one of the files stored on the persistent data storage device;

a random access memory; and

a processor configured to generate a reconstructed file system in the random access memory in a startup process from the transaction records and the file system structure of the files, where the reconstructed file system in the random access memory comprises a regenerated file hierarchy that includes a file node record for each file affected by the file transactions represented in the transaction records, where the file node record for each affected file identifies a corresponding physical location in the persistent data storage device that includes a transaction record representing at least one of the file transactions that affects a file identified by the file node record,

where the processor is further configured to error check a data portion of the transaction record representing the at least one of the file transactions affecting the file identified by the file node record, the transaction record comprising a metadata portion and the data portion, where the transaction record is identified by the file node record and the data portion is error checked in response to a request to access the file identified by the file node record after the startup process is completed.

Assignments (11)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2020
From: 2236008 ONTARIO INC.
To: BLACKBERRY LIMITED
Reel/Frame 053313/0315 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: 8758271 CANADA INC.
To: 2236008 ONTARIO INC.
Reel/Frame 032607/0674 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: QNX SOFTWARE SYSTEMS LIMITED
To: 8758271 CANADA INC.
Reel/Frame 032607/0943 →
CHANGE OF ADDRESS Recorded Feb 27, 2012
From: QNX SOFTWARE SYSTEMS LIMITED
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 027768/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: 7801769 CANADA INC.
Reel/Frame 026883/0544 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: 7801769 CANADA INC.
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 026883/0553 →
CHANGE OF SEAT Recorded Sep 8, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 026876/0235 →
CHANGE OF NAME Recorded Sep 8, 2011
From: QNX SOFTWARE SYSTEMS
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 026876/0268 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2011
From: DODGE, DAN
To: QNX SOFTWARE SYSTEMS
Reel/Frame 026874/0949 →