IP Library Granted Patent US 11,592,995
Granted Patent B2
US 11,592,995 · App. 17/234,387 · Granted Feb 28, 2023

Data storage device and method for preventing accidental updates and deletions using data versioning

Inventors: Niraj Srimal (Marathalli, IN); Ramanathan Muthiah (Bangalore, IN)
Assignee: Western Digital Technologies, Inc.
G06F3/0619G06F3/0659G06F3/0679G06F12/10G06F2212/1032
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 11,592,995
App. No.
17/234,387
Granted
Feb 28, 2023
Kind
B2
Abstract

A data storage device and method for preventing accidental updates and deletions using data versioning are provided. In one embodiment, a data storage device is provided comprising a memory and a controller. The controller is configured to: receive a command from a host to modify data stored in the memory, wherein the data is associated with a host identifier created by the data storage device; determine whether the host is associated with the host identifier; in response to determining that the host is associated with the host identifier, modify the data; and in response to determining that the host is not associated with the host identifier, create a new version of the data without modifying the data. Other embodiments are provided.

Claims (48)

1. A data storage device comprising:

a memory; and

a controller configured to:

receive a command from a host to modify data stored in the memory, wherein the data is associated with a host identifier created by the data storage device;

determine whether the host is associated with the host identifier;

in response to determining that the host is associated with the host identifier, modify the data; and

in response to determining that the host is not associated with the host identifier, create a new version of the data without modifying the data.

2. The data storage device of claim 1 , wherein the controller is further configured to update a logical-to-physical address table to associate a logical address with both the data and the new version of the data.

3. The data storage device of claim 1 , wherein the controller is further configured to:

receive a command from the host to delete the data stored in the memory;

determine whether the host is associated with the host identifier;

in response to determining that the host is associated with the host identifier, delete the data without confirming the command to delete the data; and

in response to determining that the host is not associated with the host identifier, delete the data after confirming the command to delete the data.

4. The data storage device of claim 3 , wherein the controller is further configured to update a logical-to-physical address table to indicate that the data has been deleted.

5. The data storage device of claim 1 , wherein the controller is further configured to tag the data with the host identifier.

6. The data storage device of claim 1 , wherein the controller is further configured to:

tag the data with a version identifier; and

create a new version identifier for the new version of the data.

7. The data storage device of claim 1 , wherein the controller is further configured to communicate with a plurality of hosts in a Non-Volatile Memory Express (NVMe) environment.

8. The data storage device of claim 7 , wherein a logical region of the memory is configured to be shared among the plurality of hosts as a shared namespace.

9. The data storage device of claim 1 , wherein the memory comprises a three-dimensional memory.

10. A method comprising:

performing the following in a data storage device comprising a memory storing data:

receiving a command from a host to modify the data;

determining whether the data was initially stored by the host;

in response to determining that the data was initially stored by the host, modifying the data; and

in response to determining that the data was not initially stored by the host, creating a new version of the data without modifying the data.

11. The method of claim 10 , further comprising updating a logical-to-physical address table to associate a logical address with both the data and the new version of the data.

12. The method of claim 10 , further comprising:

receiving a command from the host to delete the data;

determining whether the data was initially stored by the host;

in response to determining that the data was initially stored by the host, deleting the data without confirming the command to delete the data; and

in response to determining that the data was not initially stored by the host, deleting the data after confirming the command to delete the data.

13. The method of claim 12 , further comprising updating a logical-to-physical address table to reflect that the data has been deleted.

14. The method of claim 10 , further comprising tagging the data with a host identifier.

15. The method of claim 14 , wherein the host identifier is used to determine whether the data was initially stored by the host.

16. The method of claim 10 , further comprising:

tagging the data with a version identifier.

17. The method of claim 10 , wherein the data storage device is configured to communicate with a plurality of hosts in a Non-Volatile Memory Express (NVMe) environment.

18. The method of claim 17 , wherein a logical region of the memory is configured to be shared among the plurality of hosts as a shared namespace.

19. A data storage device comprising:

a memory;

means for receiving a command from a host to modify data stored in the memory, wherein the data is associated with a host identifier created by the data storage device;

means for determining whether the host is associated with the host identifier;

means for modifying the data in response to determining that the host is associated with the host identifier; and

means for creating a new version of the data without modifying the data in response to determining that the host is not associated with the host identifier.

20. The method of claim 16 , further comprising:

creating a new version identifier for the new version of the data.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 056285 FRAME 0292 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 056285/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2021
From: SRIMAL, NIRAJ; MUTHIAH, RAMANATHAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 055968/0361 →
Continuity (1)
Related Publication 20220334730A1 · Oct 20, 2022