IP Library Granted Patent US 12,141,123
Granted Patent B2
US 12,141,123 · App. 17/744,551 · Granted Nov 12, 2024

Generalized verification scheme for safe metadata modification

Inventors: Viacheslav Dubeyko (San Jose, CA); Adam Manzanares (San Jose, CA)
Assignee: Sandisk Technologies, Inc.
G06F16/2365G06F3/06G06F3/0619G06F3/0644G06F3/0659G06F11/30G06F16/122G06F16/273
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 12,141,123
App. No.
17/744,551
Granted
Nov 12, 2024
Kind
B2
Abstract

System and method of verifying validity of a metadata modification request to prevent improper metadata operations. During initialization of a volume in a storage device and once a metadata area is reserved for a metadata structure, information characterizing the metadata structure and metadata area is stored in the storage device, which may be in the form of an area legend composed of descriptors such as a magic signature, a node size, a clump size of reservation, and extent of the metadata area. Responsive to a request for operating on metadata, relevant information provided in the request is verified against the stored characteristic information. If the verification discovers an inconsistency between the information provided in the request and the stored characteristic information, the request modification is treated as invalid and blocked from operation.

Claims (69)

1. A machine-implemented method for a data storage system comprising a storage device and a processor, the machine-implemented method comprising:

receiving, by the processor, a request to create, in a first area of the storage device, a namespace; and

in response to the request:

adding, by the processor, an area legend of the namespace, in response to the namespace not existing in the first area; and

deleting, by the processor, one or more area legends of the namespace, in response to the namespace already existing in the first area,

wherein:

the storage device comprises the first area and a second area different from the first area;

the second area comprises metadata areas comprising a metadata area;

the metadata area is configured to store a metadata comprising information on usage of data blocks;

the first area is configured to store namespaces comprising the namespace having the area legend; and

the area legend is associated with and characterizes the metadata area.

2. The machine-implemented method of claim 1 , wherein the machine-implemented method further comprises deleting, by the processor, all of the one or more area legends of the namespace, in response to the namespace already existing in the first area and a namespace verification process being enabled.

3. The machine-implemented method of claim 1 , wherein the machine-implemented method further comprises, in response to the namespace already existing in the first area and a namespace verification process being enabled:

generating, by the processor, a set of area legends based on a file system volume of the data storage system; and

in response to the generated set of area legends being inconsistent with the one or more area legends, discarding, by the processor, an operation of deleting the one or more area legends of the namespace.

4. The machine-implemented method of claim 1 , further comprising:

deleting, by the processor, the namespace without performing a namespace verification process, in response to the namespace already existing in the first area and the namespace verification process being disabled.

5. The machine-implemented method of claim 1 , further comprising:

in response to the namespace not existing in the first area, determining, by the processor, whether a namespace verification process is to be enabled.

6. A data storage system, comprising:

a storage device comprising:

a first area; and

a second area different from the first area;

a processor; and

a memory storing instructions,

wherein the instructions are executable by the processor to perform:

receiving a request to create, in the first area of the storage device, a namespace; and

in response to the request:

adding an area legend of the namespace, in response to the namespace not existing in the first area; and

deleting one or more area legends of the namespace, in response to the namespace already existing in the first area, and

wherein:

the second area comprises metadata areas comprising a metadata area;

the metadata area is configured to store a metadata comprising information on usage of data blocks;

the first area is configured to store namespaces comprising the namespace having the area legend; and

the area legend is associated with and characterizes the metadata area.

7. The data storage system of claim 6 , wherein the instructions are further executable by the processor to perform deleting all of the one or more area legends of the namespace, in response to the namespace already existing in the first area and a namespace verification process being enabled.

8. The data storage system of claim 6 , wherein the instructions are further executable by the processor to perform, in response to the namespace already existing in the first area and a namespace verification process being enabled:

generating a set of area legends based on a file system volume of the data storage system; and

in response to the generated set of area legends being inconsistent with the one or more area legends, discarding an operation of deleting the one or more area legends of the namespace.

9. The data storage system of claim 6 , wherein in response to the one or more area legends of the namespace being inconsistent with a set of area legends prepared based on information about the second area of the storage device, the instructions are further executable by the processor to perform discarding an operation of deleting the one or more area legends of the namespace.

10. The data storage system of claim 6 , wherein the instructions are further executable by the processor to perform:

deleting the namespace without performing a namespace verification process, in response to the namespace already existing in the first area and the namespace verification process being disabled.

11. The data storage system of claim 6 , wherein the instructions are further executable by the processor to perform:

in response to the namespace not existing in the first area, determining whether a namespace verification process is to be enabled.

12. The data storage system of claim 11 , wherein in response to the namespace not existing in the first area and when the namespace verification process caused to be disabled, the instructions are further executable by the processor to perform causing the area legend of the namespace to be added without enabling the namespace verification process.

13. The data storage system of claim 11 , wherein in response to the namespace not existing in the first area and the namespace verification process caused to be enabled, the instructions are further executable by the processor to perform causing the area legend of the namespace to be added after enabling the namespace verification process.

14. The data storage system of claim 6 , wherein in response to the namespace not existing in the first area and a namespace verification process caused to be disabled, the instructions are further executable by the processor to perform causing the area legend of the namespace to be added.

15. The data storage system of claim 6 , wherein in response to the namespace not existing in the first area, the instructions are further executable by the processor to perform determining whether all of area legends of the namespace are added, regardless of whether a namespace verification process is to be enabled or to be disabled.

16. An apparatus, comprising:

a storage device comprising:

a first area; and

a second area different from the first area;

means for receiving a request to create, in the first area of the storage device, a namespace; and

in response to the request:

means for adding an area legend of the namespace, in response to the namespace not existing in the first area; and

means for deleting one or more area legends of the namespace, in response to the namespace already existing in the first area,

wherein:

the second area comprises metadata areas comprising a metadata area;

the metadata area is configured to store a metadata comprising information on usage of data blocks;

the first area is configured to store namespaces comprising the namespace having the area legend; and

the area legend is associated with and characterizes the metadata area.

17. The apparatus of claim 16 , further comprising means for deleting all of the one or more area legends of the namespace, in response to the namespace already existing in the first area and a namespace verification process being enabled.

18. The apparatus of claim 16 , wherein the apparatus further comprises:

means for generating a set of area legends based on a file system volume of the apparatus, in response to the namespace already existing in the first area and a namespace verification process being enabled; and

means for discarding an operation of deleting the one or more area legends of the namespace, in response to the namespace already existing in the first area, the namespace verification process being enabled, and the generated set of area legends being inconsistent with the one or more area legends.

19. The apparatus of claim 16 , further comprising:

means for deleting the namespace without performing a namespace verification process, in response to the namespace already existing in the first area and the namespace verification process being disabled.

20. The apparatus of claim 16 , further comprising:

means for determining whether a namespace verification process is to be enabled, in response to the namespace not existing in the first area.

Assignments (10)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE FIRST INVENTORS LAST NAME AND THE ASSIGNEE'S ADDRESS PREVIOUSLY RECORDED AT REEL: 060273 FRAME: 0275. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 22, 2022
From: DUBEYKO, VIACHESLAV; MANZANARES, ADAM
To: HGST NETHERLANDS B.V.
Reel/Frame 060827/0260 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2022
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 060269/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2022
From: DUBEYDO, VIACHESLAV; MANZANARES, ADAM
To: HGST NETHERLANDS B.V.
Reel/Frame 060273/0275 →
Continuity (3)
Continuation 16523960 · Jul 26, 2019
Continuation 15140241 · Apr 27, 2016
Related Publication 20220269671A1 · Aug 25, 2022