Claims
- 1. A process for maintaining multiple transaction-safe file allocation tables (TFATs) for a volume of TFAT storage medium, comprising:
writing a file to non-volatile memory media; and rendering an update of file size to the TFAT storage medium.
- 2. The process of claim 1, wherein the TFAT storage medium comprises at least one non-volatile solid state memory device.
- 3. The process of claim 1, further comprising, prior to writing to non-volatile storage media, storing data to be written in a cache memory, and, subsequent to transacting the atomic memory write, flushing the cache memory.
- 4. The process of claim 1, wherein the atomic memory write includes writing multiple discontinuous pages to be written to discontinuous locations.
- 5. The process of claim 1, further comprising:
determining when the atomic write includes writing new data over at least a portion of an entire cluster; and when determining indicates that the entire cluster will be re-rewritten, writing the new data over the new cluster without first re-writing old data in the new cluster location.
- 6. The process of claim 1, wherein rendering file size transaction safe is done when the TFAT storage medium is specifically configured to make file size data transaction safe.
- 7. The process of claim 1, wherein writing comprises performing an atomic memory write via block drivers.
- 8. The process of claim 1, wherein writing comprises writing multiple discontinuous pages to discontinuous locations of a file.
- 9. One or more computer readable media having stored thereon a plurality of instructions that, when executed by one or more processors, causes the one or more processors to locate data on a storage medium such that the one or more processors perform acts including:
receiving a request to locate data in a non-volatile memory having a TFAT file management system; selecting a sector of the memory to parse to locate the data; determining when the selected sector is a first sector of a directory or subdirectory of the memory; and when determining reveals that the selected sector is a first sector, skipping reading data from the selected sector.
- 10. The computer readable media of claim 9, wherein the instructions to cause the one or more processors to locate data comprise instructions to locate data stored in a solid state non-volatile memory.
- 11. The computer readable media of claim 9, wherein, when determining reveals the selected sector is not a first sector, reading information from the selected sector to compare to search criteria.
- 12. The computer readable media of claim 9, wherein, when determining reveals that the selected sector is first sector, selecting another sector and iterating determining when the another selected sector is a first sector of a directory or subdirectory of the memory; and
when determining reveals that the another selected sector is a first sector, skipping reading data from the selected sector.
- 13. The computer readable media of claim 9, further comprising, when determining reveals that the selected sector is a first sector, incrementing to another sector.
- 14. A process for maintaining transaction-safe file allocation tables (TFATs) for a volume of TFAT storage medium, comprising:
determining when a write request includes need for writing new data over at least a portion of an entire cluster; and when determining indicates that the entire cluster will be rewritten, writing the new data over the new cluster without first re-writing old data in the new cluster location.
- 15. The process of claim 14, further comprising, when determining indicates that the cluster will not be rewritten, maintaining that cluster and continuing with the write request.
- 16. The process of claim 14, wherein writing the new data over the new sector of the storage medium comprises atomically writing the data to the new sector via block drivers.
- 17. A process for writing data to a file in a TFAT volume, comprising writing multiple discontinuous pages to discontinuous locations of the file.
- 18. The process of claim 17, wherein writing comprises writing atomically via a block driver.
- 19. The process of claim 17, wherein writing comprises performing an atomic write.
- 20. The process of claim 17, wherein the file was opened in a write-through mode.
- 21. Computer readable media including computer-readable instructions configured to cause one or more processors to:
open a file for writing in a write-through mode; first write a first page of data to a first location in the file within a TFAT volume; and second write a second page of data to a second location in the file within the TFAT volume, the second location being discontinuous with the first location, wherein the first and second write comprise an atomic write.
- 22. The computer readable media of claim 21, wherein the computer readable instructions further comprise instructions to cause the one or more processors to flush a cache memory in conjunction with the first and second writes.
- 23. The computer readable media of claim 21, wherein the computer readable instructions further comprise instructions to cause the one or more processors to first and second write the first and second pages to a non-volatile memory.
- 24. The computer readable media of claim 21, wherein the computer readable instructions further comprise instructions to cause the one or more processors to first and second write the first and second pages to a non-volatile solid-state memory.
- 25. The computer readable media of claim 21, wherein the computer readable instructions further comprise instructions to cause the one or more processors to first and second write the first and second pages from a volatile memory to a flash memory.
RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S. patent application Ser. No. 10/431,009, filed on May 7, 2003, entitled “Transaction-Safe FAT Files System”, which claims the benefit of U.S. Provisional Application No. 60/420,541, filed on Oct. 22, 2002, entitled “Transaction-Safe FAT Files Subsystem”, each listing Michael D. Malueg, Hang Li, Yadhu N. Gopalan, Ronald O. Radko, Daniel J. Polivy, Sharon Drasnin, Jason R. Farmer and DaiQian Huang as inventors, which is hereby incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60420541 |
Oct 2002 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10431009 |
May 2003 |
US |
Child |
10876425 |
Jun 2004 |
US |