Transactional file system for flash memory
First Claim
1. A computer for storing data on a flash medium, comprising:
- one or more processors; and
a file system, the file system configured to store data on the flash medium as a series of linked lists by storing pointers in each physical sector of the flash medium in which valid data is also stored, wherein each pointer indicates a next physical sector in the flash medium in which valid data is located, the file system further comprising;
a sector manager comprising a write pointer that indicates a physical sector that is free to receive new data, the write pointer configured to advance through the physical sectors on the flash medium as data is written on the flash memory medium; and
a power failure manager configured to store a data valid bit in each physical sector indicated by the write pointer at completion of writing data to the physical sector indicated by the write pointer, wherein the power failure manager is further configured to (i) search the physical sector indicated by the write pointer when the file system is initialized to ascertain whether the data valid bit exists in the physical sector;
(ii) conclude that a power-failure event occurred, if the data valid bit is not found in the physical sector; and
(iii) mark the physical sector dirty if the power-failure event occurred.
1 Assignment
0 Petitions
Accused Products
Abstract
A transactional file system developed to function with flash memory is described. The file system provides for efficient storage of file system meta-information, performs robust transaction logging, and performs other related features. In one described implementation, metadata is stored in-line with data. In another embodiment, a transaction log is maintained by storing transaction information associated with requests to perform file transactions. The transaction information is stored at arbitrary physical sector addresses on the flash medium. In still another embodiment, a transaction log is stored in a physical sector of a flash medium. The transaction log contains transaction information associated with performing a file request. Metadata is written into a spare area of the physical sector indicating that the physical sector contains transaction information.
-
Citations
15 Claims
-
1. A computer for storing data on a flash medium, comprising:
-
one or more processors; and a file system, the file system configured to store data on the flash medium as a series of linked lists by storing pointers in each physical sector of the flash medium in which valid data is also stored, wherein each pointer indicates a next physical sector in the flash medium in which valid data is located, the file system further comprising; a sector manager comprising a write pointer that indicates a physical sector that is free to receive new data, the write pointer configured to advance through the physical sectors on the flash medium as data is written on the flash memory medium; and a power failure manager configured to store a data valid bit in each physical sector indicated by the write pointer at completion of writing data to the physical sector indicated by the write pointer, wherein the power failure manager is further configured to (i) search the physical sector indicated by the write pointer when the file system is initialized to ascertain whether the data valid bit exists in the physical sector;
(ii) conclude that a power-failure event occurred, if the data valid bit is not found in the physical sector; and
(iii) mark the physical sector dirty if the power-failure event occurred. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for storing data on a flash medium, comprising:
-
storing valid data in a first region of a first physical sector of the flash medium; storing a pointer in a second region of the first physical sector inline with the data in each physical sector in which valid data is stored, the pointer indicating a next physical sector in which valid data is located on the flash medium; maintaining a write pointer to advance through a circular sequence of physical sectors in the flash medium indicating a physical sector that is available to receive data as the write pointer advances; writing data into the physical sector indicated by the write pointer; writing metadata into the physical sector indicated by the write pointer if the writing of data into the physical sector is completed; searching the physical sector indicated by the write pointer to determine whether the metadata exists in the physical sector upon initializing the computer; and marking the physical sector indicated by the write pointer dirty, if the metadata is does not exist in the memory location. - View Dependent Claims (7, 8, 9, 10)
-
-
11. One or more computer-readable media comprising computer executable instructions that, when executed, direct a computer to:
-
store data in a first region of a physical sector of the flash medium; and store a pointer in a second region of each physical sector in which data is stored, the pointer indicating a next physical sector in which valid data is located on the flash medium; organize the flash memory medium as if the physical sectors of the flash memory form a continuous circle, wherein the lowest and highest physical sector are contiguous; maintain a write pointer to indicate a physical sector that is free to receive new data, the write pointer configured to advance through the continuous circle of physical sectors as data is written to the flash memory medium; store meta-information in each physical sector indicate by the write pointer at completion of a write operation to the physical sector indicated by the write pointer; search the physical sector indicated by the write pointer when the file system is initialized to ascertain whether the meta-information exists in the physical sector; conclude that a power-failure event occurred, if the meta-information is not found in the physical sector; and mark the physical sector indicated by the write pointer dirty if a power-failure event is concluded. - View Dependent Claims (12, 13, 14, 15)
-
Specification