Storage system format for transaction safe file system
First Claim
Patent Images
1. A method comprising:
- storing a first bitmap image associated with a file allocation table of a file system as a last known good bitmap image, the file allocation table defining allocated storage segments in the file system, the first bitmap image configured to store an allocation bit for each of the allocated storage segments in the file system, the allocation bit indicative of whether a respective allocated storage segment is used or unused;
storing a value indicative that the first bitmap image is the last known good bitmap image;
synchronizing a second bitmap image to the first bitmap image resulting in the second bitmap image and the first bitmap image identically indicating the allocated storage segments in the file system, wherein the second bitmap image is to be modified and the first bitmap image is to remain unchanged in response to an operation to change the file system being performed;
changing a portion of the file system by performing at least one act of an operation that comprises a plurality of acts to be performed on the file system;
modifying the second bitmap image in response to changing the portion of the file system;
after modifying the second bitmap image, synchronizing the first bitmap image to the second bitmap image resulting in the first and second bitmap images identically indicating the allocated storage segments in the changed file system; and
subsequent to an interruption prior to completion of all steps of the operation, retaining the first bitmap image as the last known good bitmap image based on the stored value when the interruption occurs before all steps of the operation are complete.
1 Assignment
0 Petitions
Accused Products
Abstract
A transaction safe file system uses two sets of file allocation tables and bitmap images to perform file modifications on one of the sets while the other set remains a last known good set. After a modification is complete, a pointer is changed to the newly modified set, and the newly modified set becomes the last known good set. The sets are then synchronized. The file allocation table is used to define cluster chains while the bitmap image is used to determine if a cluster is free or not. In some operations, only the bitmap image may need to be manipulated. The file system may be used in a transaction safe mode as well as a non-transaction safe mode.
-
Citations
21 Claims
-
1. A method comprising:
-
storing a first bitmap image associated with a file allocation table of a file system as a last known good bitmap image, the file allocation table defining allocated storage segments in the file system, the first bitmap image configured to store an allocation bit for each of the allocated storage segments in the file system, the allocation bit indicative of whether a respective allocated storage segment is used or unused; storing a value indicative that the first bitmap image is the last known good bitmap image; synchronizing a second bitmap image to the first bitmap image resulting in the second bitmap image and the first bitmap image identically indicating the allocated storage segments in the file system, wherein the second bitmap image is to be modified and the first bitmap image is to remain unchanged in response to an operation to change the file system being performed; changing a portion of the file system by performing at least one act of an operation that comprises a plurality of acts to be performed on the file system; modifying the second bitmap image in response to changing the portion of the file system; after modifying the second bitmap image, synchronizing the first bitmap image to the second bitmap image resulting in the first and second bitmap images identically indicating the allocated storage segments in the changed file system; and subsequent to an interruption prior to completion of all steps of the operation, retaining the first bitmap image as the last known good bitmap image based on the stored value when the interruption occurs before all steps of the operation are complete. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer-readable storage device comprising computer executable instructions encoded thereon that, when executed by a processing system, cause the processing system to perform acts comprising:
-
indicating a first bitmap image associated with a file allocation table of a file system as a last known good bitmap image, the file allocation table defining allocated storage segments in the file system, the first bitmap image including an allocation bit for each of the allocated storage segments in the file system; storing a value indicative that the first bitmap image is the last known good bitmap image; synchronizing a second bitmap image to the first bitmap image resulting in the second bitmap image and the first bitmap image identically indicating the allocated storage segments in the file system, wherein the second bitmap image is to be modified and the first bitmap image is to remain unchanged in response to an operation to change the file system being performed; changing a portion of the file system by performing at least one act of an operation that comprises a plurality of acts to be performed on the file system; modifying the second bitmap image in response to changing the portion of the file system; after modifying the second bitmap image, synchronizing the first bitmap image to the second bitmap image resulting in the first and second bitmap images identically indicating the allocated storage segments in the changed file system; and subsequent to an interruption prior to completion of all steps of the operation, indicating the first bitmap image as the last known good bitmap image based on the stored value in response to the interruption occurring before all steps of the operation are complete. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A system comprising:
-
a memory storing thereon; a file system; a first bitmap image associated with a file allocation table of the file system, the file allocation table defining allocated storage segments in the file system, the first bitmap image configured to store an allocation bit for each of the allocated storage segments in the file system, the first bitmap image indicated to be a last known good bitmap image; and a second bitmap image comprising a copy of the first bitmap image to identically indicate the allocated storage segments in the file system, wherein the second bitmap image is to be modified and the first bitmap image is to remain unchanged in response to an operation to change the file system being performed; and one or more computer storage media storing thereon computer readable instructions that, when executed by a processor, cause the processor to perform acts comprising; storing a value indicative that the first bitmap image is the last known good bitmap image; changing a portion of the file system by performing at least one act of an operation that comprises a plurality of acts to be performed on the file system; modifying the second bitmap image in response to changing the portion of the file system; after modifying the second bitmap image, synchronizing the first bitmap image to the second bitmap image resulting in the first and second bitmap images identically indicating the allocated storage segments in the changed file system; and subsequent to an interruption prior to completion of all steps of the operation, indicating the first bitmap image as the last known good bitmap image based on the stored value in response to occurrence of the interruption before all steps of the operation are complete.
-
Specification