Physical media aware spacially coupled journaling and replay
First Claim
1. A computer-implemented method, comprising:
- storing an indirection mapping table for a solid state drive (SSD) in memory, the indirection mapping table including a plurality of indirection units that map physical data locations on the SSD to logical addresses used by a host computer;
receiving a write request from the host computer to store data to the SSD;
storing the data to a physical data location in a cluster block on the SSD;
storing an indirection unit mapping the data to the physical data location in the cluster block on the SSD in the indirection mapping table;
generating an entry to a journal using the indirection unit, the journal including a plurality of entries corresponding to a fixed amount of disk space on the SSD, at least one entry from the plurality of entries indicating a corresponding physical data location on the SSD is defective;
determining the journal includes a maximum number of journal entries;
storing the journal to a predetermined location on the SSD, the predetermined location co-located immediately after the data it describes in the cluster block;
determining power has been restored after a power outage has occurred;
generating a new indirection mapping table using at least the journal stored at the predetermined location on the SSD; and
generating a bad block map using at least the journal stored at the predetermined location.
1 Assignment
0 Petitions
Accused Products
Abstract
An indirection mapping data structure can maintain a mapping between logical block addresses used by a host computer and physical data storage locations on a solid state drive. Changes to the indirection mapping data structure can be stored in journals. When a journal is full, the journal can be stored to a predetermined location on the cluster block determined based on the number of entries stored by the journal, leading to a number of journals scattered throughout the cluster block at predetermined locations. Each physical chunk of media, whether written with data or marked as defective is journaled. Such a journaling scheme, where the journal locations are predetermined and each physical chunk of media is journaled is referred to as physical media-aware spatially coupled journaling. During replay the spatially coupled journals can be retrieved from the predefined locations within cluster blocks and used to rebuild the indirection mapping data structure.
-
Citations
18 Claims
-
1. A computer-implemented method, comprising:
-
storing an indirection mapping table for a solid state drive (SSD) in memory, the indirection mapping table including a plurality of indirection units that map physical data locations on the SSD to logical addresses used by a host computer; receiving a write request from the host computer to store data to the SSD; storing the data to a physical data location in a cluster block on the SSD; storing an indirection unit mapping the data to the physical data location in the cluster block on the SSD in the indirection mapping table; generating an entry to a journal using the indirection unit, the journal including a plurality of entries corresponding to a fixed amount of disk space on the SSD, at least one entry from the plurality of entries indicating a corresponding physical data location on the SSD is defective; determining the journal includes a maximum number of journal entries; storing the journal to a predetermined location on the SSD, the predetermined location co-located immediately after the data it describes in the cluster block; determining power has been restored after a power outage has occurred; generating a new indirection mapping table using at least the journal stored at the predetermined location on the SSD; and generating a bad block map using at least the journal stored at the predetermined location. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-implemented method, comprising:
-
receiving a write request to store data to a solid state drive (SSD); storing the data to a physical data location in a cluster block on the SSD; updating an indirection mapping table based at least in part on the write request, the indirection mapping table mapping physical data locations on the SSD to logical addresses; generating an entry to a journal based at least in part on the write request; detecting a journal storage event; storing the journal to a predetermined location on the SSD, wherein the predetermined location causes the stored journal to be co-located with the data it describes in the cluster block, and wherein the storing the journal is based at least in part on the number of entries stored by the journal; and generating a new indirection mapping table using at least the journal stored at the predetermined location. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system, comprising:
-
at least one processor; and memory including instructions that, when executed by the at least one processor, cause the system to; receive a write request to store data to a solid state drive (SSD); store the data to a physical data location in a cluster block on the SSD; update an indirection mapping table based at least in part on the write request, the indirection mapping table mapping physical data locations on the SSD to logical addresses; generate an entry to a journal based at least in part on the write request; detect a journal storage event; store the journal to a predetermined location on the SSD, wherein the predetermined location causes the stored journal to be co-located with the data it describes in the cluster block, and wherein the storing the journal is based at least in part on the number of entries stored by the journal; and generate a new indirection mapping table using at least the journal stored at the predetermined location. - View Dependent Claims (16, 17, 18)
-
Specification