IP Library Granted Patent US 8,533,406
Granted Patent B2
US 8,533,406 · App. 13/607,486 · Granted Sep 10, 2013

Apparatus, system, and method for identifying data that is no longer in use

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 8,533,406
App. No.
13/607,486
Granted
Sep 10, 2013
Kind
B2
Abstract

An apparatus, system, and method are disclosed for managing a non-volatile storage medium. A storage controller receives a message that identifies data that no longer needs to be retained on the non-volatile storage medium. The data may be identified using a logical identifier. The message may comprise a hint, directive, or other indication that the data has been erased and/or deleted. In response to the message, the storage controller records an indication that the contents of a physical storage location and/or physical address associated with the logical identifier do not need to be preserved on the non-volatile storage medium.

Claims (49)

1. A method for managing data stored on non-volatile storage media, the method comprising:

receiving a message, at a storage controller, comprising a logical identifier, the message indicating that a storage client has deleted a block associated with the logical identifier such that data of the logical identifier does not need to be preserved on a non-volatile storage medium, wherein the logical identifier is associated with a physical storage location on the non-volatile storage medium; and

indicating that contents of the physical storage location do not need to be preserved on the non-volatile storage medium in response to the message.

2. The method of claim 1 , wherein indicating comprises deleting an index entry that associates the logical identifier with the physical storage location.

3. The method of claim 1 , wherein indicating comprises deleting a mapping between the logical identifier and the physical storage location.

4. The method of claim 1 , wherein indicating comprises invalidating an association between the logical identifier and an address of the physical storage location.

5. The method of claim 1 , further comprising maintaining an index of mappings between logical identifiers and physical storage locations, wherein indicating comprises removing a mapping between the logical identifier and the physical storage location from the index.

6. The method of claim 1 , wherein indicating comprises marking the contents of the physical storage location invalid.

7. The method of claim 1 , wherein receiving comprises receiving the message from a block storage client.

8. The method of claim 1 , wherein receiving comprises receiving the message through a block storage application programming interface.

9. The method of claim 1 , wherein receiving comprises receiving the message via a block storage protocol.

10. The method of claim 1 , further comprising erasing the contents of the physical storage location in a storage recovery process.

11. A method, comprising:

receiving, at a storage driver configured to maintain mappings between logical identifiers and physical addresses of a non-volatile storage device, an indication comprising a logical identifier corresponding to data that does not need to be preserved on the non-volatile storage device, wherein the logical identifier is associated with a storage client data identifier, and wherein the logical identifier is mapped to a physical storage location of the data on the non-volatile storage device in an index; and

removing a mapping between the logical identifier and the physical address of the data of the specified logical identifier on the non-volatile storage device in response to the indication comprising the logical identifier, wherein removal of the mapping indicates that the data corresponding to the logical identifier does not need to be preserved on the non-volatile storage device.

12. The method of claim 11 , further comprising erasing a storage division comprising the data in a storage recovery process.

13. The method of claim 11 , further comprising invalidating a data packet in response to receiving the indication.

14. The method of claim 11 , wherein receiving comprises receiving the indication from one of a file system, operating system, storage client, and storage application, and wherein the indication comprises one of a hint, a message, a command, and a directive.

15. An apparatus, comprising:

a non-volatile storage medium;

a request receiver module of a storage layer for the non-volatile storage medium configured to receive an indication that a data structure, corresponding to data stored on the non-volatile storage medium, has been deleted, wherein the indication comprises a logical identifier that is associated with the data structure by a storage client, and wherein the logical identifier is mapped to a physical address of the data on the non-volatile storage medium; and

a marking module configured to record that the data stored at the physical address mapped to the logical identifier can be erased from the non-volatile storage medium in response to receiving the indication.

16. The apparatus of claim 15 , wherein the marking module is configured to record that data stored at a physical address on the non-volatile storage medium can be erased from the non-volatile storage medium by invalidating an association between the logical identifier and the physical address.

17. The apparatus of claim 15 , wherein the marking module is configured to record that data stored at a physical address on the non-volatile storage medium can be erased from the non-volatile storage medium by deleting a mapping between the logical identifier and the physical address.

18. The apparatus of claim 15 , further comprising an index comprising mappings between logical identifiers and physical addresses on the non-volatile storage medium, wherein the marking module is configured to remove a mapping between the logical identifier and the physical addresses of the data from the index.

19. The apparatus of claim 18 , wherein the marking module is configured to delete a reference to the physical address from an index entry of the logical identifier.

20. The apparatus of claim 18 , wherein removal of the mapping indicates that data stored at the physical address can be erased from the non-volatile storage medium.

21. The apparatus of claim 15 , wherein the marking module is configured to mark a data packet at the physical address invalid.

22. The apparatus of claim 15 , further comprising a request receiver module configured to receive the hint, wherein the request receiver module comprises a driver.

23. The apparatus of claim 15 , further comprising a request receiver module configured to receive the hint from a file system, the file system configured to send the hint in response to deletion of file system data associated with the logical identifier.

24. The apparatus of claim 15 , further comprising a request receiver module configured to receive the hint from a file system, the file system configured to issue the hint in response to removal of a file associated with the logical identifier.

25. The apparatus of claim 15 , further comprising a request receiver module configured to receive the hint from an application, wherein the application is configured to send the hint in response to determining that data associated with the logical identifier no longer needs to be retained on the non-volatile storage medium.

26. The apparatus of claim 15 , wherein the non-volatile storage medium comprises a flash storage medium, the apparatus further comprising:

a storage recovery module configured to recover the physical storage location at the physical address; and

a storage module configured to store data associated with another logical identifier on the physical storage location in response to recovering the physical storage location.

27. A system comprising:

a flash storage medium; and

a storage layer for the flash storage medium, comprising;

an index module configured to maintain an index comprising a plurality of entries, wherein the individual entries associate a logical identifier with a physical storage location of the flash storage medium that comprises data associated with the logical identifier; and

a request receiver module configured to receive an indication comprising a logical identifier that is empty, wherein the logical identifier is associated with a data identifier of a storage client, and wherein the logical identifier is associated with a physical storage location in the index,

wherein the index module is configured to update the index, in response to the indication, to indicate that contents of the physical storage location associated with the logical identifier do not need to be preserved on the flash storage medium, wherein the index module is configured to update the index by one or more of (a) removing an entry from the index that associates the specified logical identifier with the physical storage location, and (b) adding an entry to the index.

28. The system of claim 27 , further comprising a storage recovery module configured to erase a storage division comprising the physical storage location in response to removing the entry.

29. The system of claim 27 , wherein the indication comprises a command, wherein the request receiver module is configured to receive the command through one of a block device interface and via a block storage protocol, and wherein the system further comprises a storage division recovery module configured to recover physical storage locations comprising invalid data.

30. A system, comprising:

a flash storage medium;

an index module configured to maintain an index comprising a plurality of entries, wherein the individual entries associate a logical identifier with a physical storage location of the flash storage medium that comprises data associated with the logical identifier;

a request receiver module configured to receive an indication that a specified logical identifier is empty, wherein the logical identifier is associated with a data identifier of a storage client, and wherein the logical identifier is associated with a physical storage location in the index,

wherein the index module is configured to update the index, in response to the indication, to indicate that contents of the physical storage location associated with the logical identifier do not need to be preserved on the flash storage medium, wherein the index module is configured to update the index by one or more of (a) removing an entry from the index that associates the specified logical identifier with the physical storage location, and (b) adding an entry to the index; and

a read request response module configured to return an indication that the logical identifier is empty in response to a request to read data of the logical identifier while the data remains on the flash storage medium.

Assignments (16)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 053654 FRAME: 0254. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 15, 2021
From: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
To: UNIFICATION TECHNOLOGIES LLC
Reel/Frame 058134/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE PATENT SECURITY AGREEMENT. Recorded Nov 15, 2021
From: UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 058223/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2020
From: FIO SEMICONDUCTOR TECHNOLOGIES, LLC
To: ACACIA RESEARCH GROUP LLC
Reel/Frame 052095/0903 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2020
From: ACACIA RESEARCH GROUP LLC
To: UNIFICATION TECHNOLOGIES LLC
Reel/Frame 052096/0225 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT DOCUMENT FILED PREVIOUSLY RECORDED ON REEL 047702 FRAME 0413. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 16, 2019
From: LONGITUDE ENTERPRISE FLASH S.A.R.I.
To: FIO SEMICONDUCTOR TECHNOLOGIES, LLC
Reel/Frame 048918/0035 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2018
From: LONGITUDE ENTERPRISE FLASH S.A.R.I.
To: FIO SEMICONDUCTOR TECHNOLOGIES LIMITED
Reel/Frame 047702/0413 →
RELEASE OF SECURITY INTEREST Recorded May 4, 2016
From: FUSION-IO, INC.
To: SANDISK CORPORATION
Reel/Frame 038748/0880 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: PS12 LUXCO S.A.R.L.
Reel/Frame 038362/0575 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: PS12 LUXCO S.A.R.L.
To: LONGITUDE ENTERPRISE FLASH S.A.R.L.
Reel/Frame 038362/0604 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2014
From: FUSION-IO, INC.
To: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033419/0748 →
SECURITY INTEREST Recorded Jul 24, 2014
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: FUSION-IO, INC.
Reel/Frame 033410/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2014
From: FUSION-IO, INC.
To: INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033389/0511 →
CHANGE OF NAME Recorded Sep 24, 2012
From: FUSION MULTISYSTEMS, INC.
To: FUSION-IO, INC.
Reel/Frame 029033/0133 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2012
From: FLYNN, DAVID; THATCHER, JONATHAN; ZAPPE, MICHAEL
To: FUSION MULTISYSTEMS, INC.
Reel/Frame 029015/0181 →