IP Library Granted Patent US 10,353,813
Granted Patent B2
US 10,353,813 · App. 15/197,162 · Granted Jul 16, 2019

Checkpoint based technique for bootstrapping forward map under constrained memory for flash devices

Inventors: Ajith Kumar Battaje (Karnataka, IN); Tanay Goel (Chhattisgarh, IN); Sandeep Sharma (Karnataka, IN); Saurabh Manchanda (Bangalore, IN); Ashish Singhai (Los Altos, CA); Vijay Karamcheti (Palo Alto, CA)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F12/0246G06F11/1469G06F2201/805G06F2201/835G06F2201/84G06F2212/152G06F2212/214G06F2212/657G06F2212/7201
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,353,813
App. No.
15/197,162
Granted
Jul 16, 2019
Kind
B2
Abstract

A system comprising a processor and a memory storing instructions that, when executed, cause the system to determine a first value of a first checkpoint associated with a first snapshot, receive a second value of a second checkpoint associated with a translation table entry from an additional source, determine whether the second value of the second checkpoint is after the first value of the first checkpoint, in response to determining that the second value of the second checkpoint is after the first value of the first checkpoint, retrieve the translation table entry associated with the second checkpoint from the additional source, and reconstruct the translation table using the translation table entry associated with the second checkpoint.

Claims (41)

1. A method comprising:

identifying a first snapshot from a storage device, wherein the first snapshot is associated with a translation table, wherein the first snapshot includes at least one snapshot selected from the group consisting of (i) a snapshot that includes a free running counter denoting a timestamp of sufficient granularity, (ii) a snapshot that includes a counter associated with an update of a reverse translation map, wherein the counter is incremented each time the reverse translation map is persisted, (iii) a snapshot that includes a counter associated with a meta-log entry, wherein the counter is incremented each time a new meta-log entry is created, and (iv) a snapshot associated with the translation table that includes a plurality of translation table entries, the plurality of translation table entries comprising a plurality of dirty entries;

determining a first value of a first checkpoint associated with the first snapshot;

receiving a second value of a second checkpoint associated with a translation table entry from an additional source;

determining whether the second value of the second checkpoint is after the first value of the first checkpoint;

in response to determining that the second value of the second checkpoint is after the first value of the first checkpoint, retrieving the translation table entry associated with the second checkpoint from the additional source; and

reconstructing the translation table using the translation table entry associated with the second checkpoint.

2. The method of claim 1 , further comprising:

reconstructing translation table statistics using a subset of dump groups associated with the translation table.

3. The method of claim 1 , further comprising:

writing a plurality of translation table entries consecutively in a log-format, the plurality of translation table entries associated with the translation table.

4. An apparatus comprising:

a storage device; and

a processor coupled to the storage device and configured to:

determine a first value of a first checkpoint associated with a first snapshots,

wherein the first snapshot is associated with a translation table that includes a plurality of translation table entries,

wherein the plurality of translation table entries includes a plurality of dirty entries,

wherein a dirty entry from the plurality of dirty entries includes a non-persisted map;

receive a second value of a second checkpoint associated with a translation table entry from an additional source;

determine whether the second value of the second checkpoint is after the first value of the first checkpoint;

in response to determining that the second value of the second checkpoint after the first value of the first checkpoint, retrieve the translation table entry associated with the second checkpoint from the additional source; and

reconstruct the translation table using the translation table entry associated with the second checkpoint.

5. The apparatus of claim 4 , wherein the first snapshot includes a free running counter denoting a timestamp of sufficient granularity.

6. The apparatus of claim 4 , wherein the first snapshot includes a counter associated with an update of a reverse translation map, wherein the counter is incremented each time the reverse translation map is persisted.

7. The apparatus of claim 4 , wherein the first snapshot includes a counter associated with a meta-log entry, wherein the counter is incremented each time a new meta-log entry is created.

8. The apparatus of claim 4 , further comprising:

reconstructing translation table statistics using a subset of dump groups associated with the translation table.

9. The apparatus of claim 4 , further comprising:

writing a plurality of translation table entries consecutively in a log-format, the plurality of translation table entries associated with the translation table.

10. The apparatus of claim 4 , wherein the processor configured to determine whether the second value of the second checkpoint is after the first value of the first checkpoint comprises a processor configured to determine whether the second value of the second checkpoint is greater than the first value of the first checkpoint.

11. The apparatus of claim 10 , wherein the processor configured to, in response to determining that the second value of the second checkpoint after the first value of the first checkpoint, retrieve the translation table entry associated with the second checkpoint from the additional source comprises a processor configured to, in response to determining that the second value of the second checkpoint is greater than the first value of the first checkpoint, retrieve the translation table entry associated with the second checkpoint from the additional source.

12. An apparatus comprising:

a storage device; and

a processor coupled to the storage device and configured to:

determine a first value of a first checkpoint associated with a first snapshot, wherein the first snapshot is the most recent snapshot associated with a translation table;

receive a second value of a second checkpoint associated with a translation table entry from an additional source, wherein the additional source includes chunks of a reverse translation table and mega-log entries;

determine whether the second value of the second checkpoint is after the first value of the first checkpoint;

in response to determining that the second value of the second checkpoint is after the first value of the first checkpoint, retrieve the translation table entry associated with the second checkpoint from the additional source; and

reconstruct the translation table using the translation table entry associated with the second checkpoint.

13. The apparatus of claim 12 , wherein the first snapshot includes a counter associated with an update of a reverse translation map, wherein the counter is incremented each time the reverse translation map is persisted.

14. The apparatus of claim 12 , wherein the first snapshot associated with the translation table includes a plurality of translation table entries, the plurality of translation table entries being dirty entries.

Assignments (5)
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT SERIAL NO 15/025,946 PREVIOUSLY RECORDED AT REEL: 040831 FRAME: 0265. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 15, 2017
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043973/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2016
From: BATTAJE, AJITH KUMAR; GOEL, TANAY; SHARMA, SANDEEP; MANCHANDA, SAURABH; SINGHAI, ASHISH; KARAMCHETI, VIJAY
To: HGST NETHERLANDS B.V.
Reel/Frame 040681/0892 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040831/0265 →
Continuity (1)
Related Publication 20180004651A1 · Jan 4, 2018