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).
107 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; 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 same file; 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 for a reduction in an amount of memory used by the transaction file, where the header section of each respective one of the transaction records 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 file and the directory, and where the header section of each respective one of the transaction records further comprises a second field indicating an amount of the at least one of the file and the directory that is to be overwritten. - View Dependent Claims (11, 12, 13, 14, 15)
-
Specification