9229852

Flash Translation Layer System for Maintaining Data Versions in Solid State Memory

PublishedJanuary 5, 2016
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A computer program product for maintaining versions of data within a solid state memory, the computer program product comprising a non-transitory storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method, the method comprising: receiving, from a file system, at least one request to perform an operation on at least one logical page of a solid state memory; determining if the at least one request comprises a data versioning tag, the data versioning tag at least comprising a version identifier identifying at least one version of at least one dataset associated with the at least one logical page on which the operation is to be performed on, and a file/directory identifier identifying one of a file and a directory within the file system corresponding to a physical page associated with the logical page on which the operation is to be performed, where physical pages corresponding to one of a given file and a given directory are associated with a same file/directory identifier; determining that that the operation is a data versioning operation based on the at least one request comprising a data versioning tag; based on the operation being a data versioning operation, identifying a data structure associated with the at least one logical page based on a set of information within the data versioning tag, wherein the data structure at least identifies one or more physical pages associated with the at least one logical page, and a version of the at least one dataset associated with the at least one logical page represented by a dataset stored in each of the one or more physical pages, wherein at least one of the one or more physical pages comprises a dataset representing the at least one version of the at least one dataset identified in the data versioning tag; and performing the operation on the dataset representing the at least one version of the at least one dataset associated with the at least one logical page based on the data structure that has been identified.

2

2. The computer program product of claim 1 , wherein the at least one request is a read request comprising an identifier associated with the at least one logical page.

3

3. The computer program product of claim 2 , wherein the performing comprises: identifying, based on the identifier, a first set of information within the data structure associated with the at least one logical page; identifying, based on the first set of information, a second set of information within the data structure associated with one or more physical pages of the at least one logical page; identifying, based on the second set of information, a physical page associated with the logical page comprising a data versioning tag with the version identifier; and sending a dataset stored within the physical page to the file system.

4

4. The computer program product of claim 1 , wherein the at least one request is a write request comprising: an identifier associated with the at least one logical page; and a dataset to be written to the at least one logical page.

5

5. The computer program product of claim 4 , wherein the performing comprises: determining, based on the identifier, a physical page in the solid state memory for storing the dataset therein; storing the dataset in the physical page; and storing, within the data structure associated with the at least one logical page, an information set associated with the physical page, wherein the information set comprises at least an identifier of the physical page and the data versioning tag.

6

6. The computer program product of claim 1 , wherein the at least one request is a snapshot request comprising: a group identifier indicating a group of logical pages from a plurality of groups on which a snapshot operation is to be performed on; and an identifier identifying at least one logical page within the group of logical pages on which the snapshot operation is to be performed on.

7

7. The computer program product of claim 6 , wherein the data structure is identified based on the group identifier, and wherein the performing comprises: identifying, based on the identifier, a set of information within the data structure associated with the at least one logical page; identifying, based on the set of information, a physical page associated with the at least one logical page comprising a dataset representing a most recent version of the at least one logical page; and setting a flag within the physical page, wherein the flag prevents garbage collection operations from being performed on the physical page.

8

8. The computer program product of claim 7 , wherein the snapshot request further comprises the version identifier.

9

9. The computer program product of claim 8 , wherein the data structure is identified based on the group identifier, and wherein the performing comprises: identifying, based on the identifier, a set of information within the data structure associated with the at least one logical page; identifying, based on the set of information, a physical page of the at least one logical page comprising a dataset associated with a version identifier matching the version identifier in the snapshot request; and setting a flag within the physical page, wherein the flag prevents garbage collection operations from being performed on the physical page.

10

10. The computer program product of claim 1 , wherein the at least one request is a rollback request comprising a group identifier associated with a group of logical pages, wherein the at least one logical page is a member of the group; an identifier associated with at least one logical page; and the version identifier associated with a version of the at least one logical page.

11

11. The computer program product of claim 10 , wherein the data structure is identified based on the group identifier, and wherein the performing comprises: identifying, based on the identifier, a set of information within the data structure associated with the at least one logical page; identifying, based on the set of information, a physical page of the at least one logical page associated with a version identifier matching the version identifier within the rollback request; and updating a logical-to-physical translation table entry for the at least one logical page to point to the physical page that has been identified.

12

12. An information processing system for maintaining versions of data within a solid state memory, the information processing system comprising: a processor; a solid state memory communicatively coupled to the processor; and a flash translation layer communicatively coupled to the processor and the solid state memory, wherein the flash translation layer is configured to perform a method comprising: receiving, from a file system, at least one request to perform an operation on at least one logical page of a solid state memory; determining if the at least one request comprises a data versioning tag, the data versioning tag at least comprising a version identifier identifying at least one version of at least one dataset associated with the at least one logical page on which the operation is to be performed on, and a file/directory identifier identifying one of a file and a directory within the file system corresponding to a physical page associated with the logical page on which the operation is to be performed, where physical pages corresponding to one of a given file and a given directory are associated with a same file/directory identifier; determining that that the operation is a data versioning operation based on the at least one request comprising a data versioning tag; based on the operation being a data versioning operation, identifying a data structure associated with the at least one logical page based on a set of information within the data versioning tag, wherein the data structure at least identifies one or more physical pages associated with the at least one logical page, and a version of the at least one dataset associated with the at least one logical page represented by a dataset stored in each of the one or more physical pages, wherein at least one of the one or more physical pages comprises a dataset representing the at least one version of the at least one dataset identified in the data versioning tag; and performing the operation on the dataset representing the at least one version of the at least one dataset associated with the at least one logical page based on the data structure that has been identified.

13

13. The information processing system of claim 12 , wherein the at least one request is a read request comprising an identifier associated with the at least one logical page.

14

14. The information processing system of claim 13 , wherein the performing comprises: identifying, based on the identifier, a first set of information within the data structure associated with the at least one logical page; identifying, based on the first set of information, a second set of information within the data structure associated with one or more physical pages of the at least one logical page; identifying, based on the second set of information, a physical page associated with the logical page comprising a data versioning tag with the version identifier; and sending a dataset stored within the physical page to the file system.

15

15. The information processing system of claim 12 , wherein the at least one request is a write request comprising: an identifier associated with the at least one logical page; and a dataset to be written to the at least one logical page.

16

16. A solid state storage device comprising: a processor; a solid state memory communicatively coupled to the processor; and a flash translation layer communicatively coupled to the processor and the solid state memory, wherein the flash translation layer is configured to perform a method comprising: receiving, from a file system, at least one request to perform an operation on at least one logical page of a solid state memory; determining if the at least one request comprises a data versioning tag, the data versioning tag at least comprising a version identifier identifying at least one version of at least one dataset associated with the at least one logical page on which the operation is to be performed on, and a file/directory identifier identifying one of a file and a directory within the file system corresponding to a physical page associated with the logical page on which the operation is to be performed, where physical pages corresponding to one of a given file and a given directory are associated with a same file/directory identifier; determining that that the operation is a data versioning operation based on the at least one request comprising a data versioning tag; based on the operation being a data versioning operation, identifying a data structure associated with the at least one logical page based on a set of information within the data versioning tag, wherein the data structure at least identifies one or more physical pages associated with the at least one logical page, and a version of the at least one dataset associated with the at least one logical page represented by a dataset stored in each of the one or more physical pages, wherein at least one of the one or more physical pages comprises a dataset representing the at least one version of the at least one dataset identified in the data versioning tag; and performing the operation on the dataset representing the at least one version of the at least one dataset associated with the at least one logical page based on the data structure that has been identified.

17

17. The solid state storage device of claim 16 , wherein the at least one request is a read request comprising an identifier associated with the at least one logical page.

18

18. The solid state storage device of claim 17 , wherein the performing comprises: identifying, based on the identifier, a first set of information within the data structure associated with the at least one logical page; identifying, based on the first set of information, a second set of information within the data structure associated with one or more physical pages of the at least one logical page; identifying, based on the second set of information, a physical page associated with the logical page comprising a data versioning tag with the version identifier; and sending a dataset stored within the physical page to the file system.

19

19. The solid state storage device of claim 16 , wherein the at least one request is a write request comprising: an identifier associated with the at least one logical page; and a dataset to be written to the at least one logical page.

20

20. The solid state storage device of claim 16 , wherein the performing comprises: determining, based on the identifier, a physical page in the solid state memory for storing the dataset therein; storing the dataset in the physical page; and storing, within the data structure associated with the at least one logical page, an information set associated with the physical page, wherein the information set comprises at least an identifier of the physical page and the data versioning tag.

Patent Metadata

Filing Date

Unknown

Publication Date

January 5, 2016

Inventors

Gokul B. KANDIRAJU
Hubertus FRANKE
David CRAFT

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “FLASH TRANSLATION LAYER SYSTEM FOR MAINTAINING DATA VERSIONS IN SOLID STATE MEMORY” (9229852). https://patentable.app/patents/9229852

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.