Claims
- 1. A method of updating a file stored in memory comprising:
copying an original fragment of the file to update to form a new fragment with changed data; creating a backup copy of an end sequence table having a handle to point to the new fragment; and deleting either the original fragment or the new fragment.
- 2. The method of claim 1, further including marking either the original fragment or the new fragment as linked.
- 3. The method of claim 1, further including marking either the original fragment or the new fragment as invalid and the marked fragment is deleted.
- 4. The method of claim 1, further including deleting either the original end sequence table or backup copy end sequence table.
- 5. The method of claim 1, further including marking the new fragment as a backup copy and the backup copy is deleted.
- 6. The method of claim 1, wherein the creating a backup copy end sequence table includes writing the handle into a replacement entry.
- 7. The method of claim 6, wherein the writing the handle includes marking a previous handle pointing to the original fragment as invalid and marking the handle pointing to the new fragment as valid.
- 8. The method of claim 1, wherein the end sequence table is a member of a chain of other sequence tables, each sequence table having a handle, and the method further includes:
creating a backup copy of each of the other original sequence tables in the chain each back up copy sequence table having a handle to point to the next backup copy sequence table in the chain, and deleting either the original sequence tables or the backup copy sequence tables in the chain.
- 9. The method of claim 8, wherein each sequence table in the chain is hierarchically ranked in a different level.
- 10. The method of claim 8, wherein each sequence table in the chain has more than one handle to point to more than one other sequence table.
- 11. A storage system for updating a file, comprising:
a) at least two fragments of a data object of the file and a sequence table having a handle to point to one of the fragments to update, and b) a data object manager to:
copy an original fragment to form a new fragment with changed data; create a backup copy of the sequence table with a handle to point to the new fragment; and delete either the original fragment or new fragment.
- 12. The storage system of claim 11, wherein the data object is further to mark either the original fragment or the new fragment as linked.
- 13. The storage system of claim 11, wherein the data object is further to mark either the original fragment or the new fragment as invalid and the marked fragment is deleted.
- 14. The storage system of claim 11, wherein the data object is further to delete either the original end sequence table or backup copy end sequence table.
- 15. The storage system of claim 11, wherein the data object is further to mark the new fragment as a backup copy and the backup copy is deleted.
- 16. The storage system of claim 11, wherein the data object creating a backup copy end sequence table includes writing the handle into a replacement entry.
- 17. The storage system of claim 16, wherein the writing the handle includes marking a previous handle pointing to the original fragment as invalid and marking the handle pointing to the new fragment as valid.
- 18. The storage system of claim 11, wherein the sequence table is a member of a chain with other sequence tables each having a handle and the data object manager is further to:
create a backup copy of the onginal sequence tables in the chain each back up copy sequence table having a handle to point to the next backup copy sequence table in the chain, and delete either the original sequence tables or the backup copy sequence tables in the chain.
- 19. The storage system of claim 18, wherein each sequence table in the chain is hierarchically ranked in a different level.
- 20. The storage system of claim 18, wherein each sequence table in the chain has more than one handle to point to more than one other sequence table.
- 21. A computer readable medium having stored therein a plurality of sequences of executable instructions, which, when executed by a processor, cause the system to:
copy an original fragment of the file update to form a new fragment with changed data; create a backup copy of an end sequence table having a handle to point to the new fragment; and delete either the original fragment or the new fragment.
- 22. The computer readable medium of claim 21, further including additional sequences of executable instructions, which, when executed by the processor further cause the system to mark either the original fragment or the new fragment as linked.
- 23. The computer readable medium of claim 21, further including additional sequences of executable instructions, which, when executed by the processor further cause the system to mark either the original fragment or the new fragment as invalid and the marked fragment is deleted.
- 24. The computer readable medium of claim 21, further including additional sequences of executable instructions, which, when executed by the processor further cause the system to delete either the original end sequence table or backup copy end sequence table.
- 25. The computer readable medium of claim 21, further including additional sequences of executable instructions, which, when executed by the processor further cause the system to mark the new fragment as a backup copy and the backup copy is deleted.
- 26. The computer readable medium of claim 21, wherein the creating a backup copy end sequence table includes writing the handle into a replacement entry.
- 27. The method of claim 26, wherein the writing the handle includes marking a previous handle pointing to the original fragment as invalid and marking the handle pointing to the new fragment as valid.
- 28. The computer readable medium of claim 21, further including additional sequences of executable instructions, which, when executed by the processor cause the system to:
create a backup copy of each of the other original sequence tables in a chain, each back up copy sequence table having a handle to point to the next backup copy sequence table in the chain, and delete either the original sequence tables or the backup copy sequence tables in the chain.
- 29. The computer readable medium of claim 28, wherein each sequence table in the chain is hierarchically ranked in a different level.
- 30. The computer readable medium of claim 28, wherein each sequence table in the chain has more than one handle to point to more than one other sequence table.
CROSS-REFERENCED RELATED APPLICATIONS
[0001] This application is a related to U.S. patent application Ser. No. 09/675,578, entitled, “INCREASED RELIABILITY OF DATA STORED ON FLASH MEMORY TN APPLICATIONS SENSITIVE TO POWER-LOSS” filed on Sep. 29, 2000, and U.S. patent application Ser. No. 09/063,954, entitled, “DYNAMIC ALLOCATION FOR EFFICIENT MANAGEMENT OF VARIABLE SIZED DATA WITHIN A NONVOLATILE MEMORY,” filed on Apr. 21, 1998.