File system having transaction record coalescing
First Claim
1. An electronic data system comprising:
- a memory comprising stored data;
a file system code executable to organize and maintain the stored data in a plurality of files and a plurality of directories;
a transaction file maintained by the file system code in the memory, the transaction file comprising a plurality of transaction records stored on the memory, where the transaction records correspond to a plurality of transactions on at least one of the files and the directories, where each transaction record of the transaction records comprises a header section and a data section, where the header section of each respective one of the transaction records identifies at least one of a file and a directory associated with the data section of the respective one of the transaction records, and the file and the directory are included in at the least one of the files and the directories; and
where the file system code coalesces the transaction records stored on the memory by;
scanning the header section of each transaction record of the transaction records for identification of a first subset of the transaction records directed to a same file, a second subset of the transaction records directed to a same logical portion of one of the files, and a third subset of the transaction records directed to a same directory; and
at least one of;
combining the first subset of the transaction records identified during the scanning as directed to the same file into one or more first coalesced transaction records and releasing one or more transaction records of the first subset of the transaction records identified as directed to the same file as free memory thereby reducing an amount of the memory used by the transaction file,combining the second subset of the transaction records identified during the scanning as directed to the same logical portion of the file into one or more second coalesced transaction records and releasing one or more transaction records of the second subset of the transaction records identified as directed to the same logical portion of the file as free memory thereby reducing the amount of the memory used by the transaction file, andcombining the third subset of the transaction records identified during the scanning as directed to the same directory into one or more third coalesced transaction records and releasing one or more transaction records of the third subset of the transaction records identified as directed to the same directory as free memory thereby reducing the amount of the memory used by the transaction file;
where the header section of each respective one of the transaction records further comprises a first field from which the file system code determines a starting address at which the data section is to be written into the at least one of the file and the directory identified in the header section, and a second field from which the file system code determines an amount of the at least one of the file and the directory that is to be overwritten.
11 Assignments
0 Petitions
Accused Products
Abstract
An electronic data system comprises memory storage having stored data, file system software, and a transaction file. The transaction file is maintained by the file system software, and includes a plurality of transaction records corresponding to transactions that have been or are to be executed on one or more files and/or the or more directories of the file system. The file system software operates to organize and maintain the stored data in the files and directories and also to coalesce multiple transaction records meeting one or more criteria into fewer coalesced transaction records. The physical memory space required by the transaction file is reduced by the transaction record coalescing. The coalesced transaction records may be constructed so that they represent a logical result of applying each transaction record of a transaction record set in chronological order. Once the coalesced transaction records have been committed in the file system, the physical memory used by the original transaction records in the set may be reclaimed for further use (e.g., to store further transaction records) or may be otherwise removed from further use (e.g., when the physical memory is located in a block of memory in a flash-like memory device that has reached its maximum number of write and/or erase cycles).
227 Citations
15 Claims
-
1. An electronic data system comprising:
-
a memory comprising stored data; a file system code executable to organize and maintain the stored data in a plurality of files and a plurality of directories; a transaction file maintained by the file system code in the memory, the transaction file comprising a plurality of transaction records stored on the memory, where the transaction records correspond to a plurality of transactions on at least one of the files and the directories, where each transaction record of the transaction records comprises a header section and a data section, where the header section of each respective one of the transaction records identifies at least one of a file and a directory associated with the data section of the respective one of the transaction records, and the file and the directory are included in at the least one of the files and the directories; and where the file system code coalesces the transaction records stored on the memory by; scanning the header section of each transaction record of the transaction records for identification of a first subset of the transaction records directed to a same file, a second subset of the transaction records directed to a same logical portion of one of the files, and a third subset of the transaction records directed to a same directory; and
at least one of;combining the first subset of the transaction records identified during the scanning as directed to the same file into one or more first coalesced transaction records and releasing one or more transaction records of the first subset of the transaction records identified as directed to the same file as free memory thereby reducing an amount of the memory used by the transaction file, combining the second subset of the transaction records identified during the scanning as directed to the same logical portion of the file into one or more second coalesced transaction records and releasing one or more transaction records of the second subset of the transaction records identified as directed to the same logical portion of the file as free memory thereby reducing the amount of the memory used by the transaction file, and combining the third subset of the transaction records identified during the scanning as directed to the same directory into one or more third coalesced transaction records and releasing one or more transaction records of the third subset of the transaction records identified as directed to the same directory as free memory thereby reducing the amount of the memory used by the transaction file; where the header section of each respective one of the transaction records further comprises a first field from which the file system code determines a starting address at which the data section is to be written into the at least one of the file and the directory identified in the header section, and a second field from which the file system code determines an amount of the at least one of the file and the directory that is to be overwritten. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method comprising:
-
providing a plurality of files and a plurality of directories stored on a memory device; providing, on the memory device, a transaction file comprising a plurality of transaction records, where each respective one of the transaction records comprises a header section and a data section, where the header section of each respective one of the transaction records identifies at least one of the files and the directories that is associated with the data section of the respective one of the transaction records, and the header section further comprises a first field indicating a starting address at which the data section is to be written into the at least one of the files and the directories, and a second field indicating an amount of the at least one of the files and the directories that is to be overwritten; coalescing the transaction records stored on the memory device with a processor by; scanning the header section of each of the transaction records for identification of a first subset of the transaction records directed to a common file; scanning the first field and the second field of the header section of each respective transaction record in the first subset for identification of a second subset of transaction records directed to an overlapping portion of the common file, wherein the overlapping portion is a common portion of the common file and at least a part of the overlapping portion is to be overwritten when each respective transaction record in the second subset is applied; combining the second subset of transaction records into one or more first coalesced transaction records and including the one or more first coalesced transaction records in the first subset of transaction records; releasing the second subset of the transaction records for a first reduction in an amount of memory used by the transaction file; combining the first subset of the transaction records identified as directed to the common file, including the one or more first coalesced transaction records, into one or more second coalesced transaction records; and releasing one or more transaction records of the first subset of the transaction records identified as directed to the common file for a second reduction in the amount of memory used by the transaction file. - View Dependent Claims (11, 12, 13, 14, 15)
-
Specification