IP Library Granted Patent US 8,966,191
Granted Patent B2
US 8,966,191 · App. 13/424,333 · Granted Feb 24, 2015

Logical interface for contextual storage

Inventors: David Flynn (Sandy, UT); Robert Wipfel (Draper, UT); David Nellans (Salt Lake City, UT); John Strasser (Syracuse, UT)
Assignee: Fusion-IO, Inc.
G06F12/0246G06F12/00G06F13/16G11C16/06G06F3/061G06F3/0631G06F3/0643G06F3/0688
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,966,191
App. No.
13/424,333
Granted
Feb 24, 2015
Kind
B2
Abstract

A storage layer presents logical address space of a non-volatile storage device. The storage layer maintains logical interfaces to the non-volatile storage device, which may include arbitrary, any-to-any mappings between logical identifiers and storage resources. Data may be stored on the non-volatile storage device in a contextual format, which includes persistent metadata that defines the logical interface of the data. The storage layer may modify the logical interface of data that is stored in the contextual format. The modified logical interface may be inconsistent with the existing contextual format of the data on the non-volatile storage media. The storage layer may provide access to the data in the inconsistent contextual format through the modified logical interface. The contextual format of the data may be updated to be consistent with the modified logical interface in a write out-of-place storage operation.

Claims (40)

1. A method, comprising:

associating data stored at a physical address on a non-volatile storage medium with first persistent metadata stored on the non-volatile storage medium that maps the data to a logical address of a logical address space;

providing access to the data at the physical address through a different logical address of the logical address space that differs from the logical address mapped to the data by the first persistent metadata stored on the non-volatile storage medium; and

storing second persistent metadata on the non-volatile storage medium that maps the data to the different logical address of the logical address space.

2. The method of claim 1 , further comprising associating the data with the different logical address of the logical address space in response to a request.

3. The method of claim 2 , further comprising acknowledging completion of the request in response to storing the second persistent metadata on the non-volatile storage medium.

4. The method of claim 1 , further comprising associating the physical address of the data with the different logical identifier in an index.

5. The method of claim 4 , further comprising invalidating the second persistent metadata stored on the non-volatile storage medium in response to at least one of: rewriting the data at a different physical address on the non-volatile storage medium, and storing a mapping between the stored data and the modified logical interface on a non-volatile storage medium.

6. The method of claim 1 , further comprising rewriting the data on another physical address of the non-volatile storage medium with persistent metadata that maps the data with the different logical identifier in a storage operation that is independent of servicing storage requests.

7. The method of claim 1 , further comprising:

determining that the first persistent metadata associated with the data stored at the physical address on the non-volatile storage medium is inconsistent with the different logical identifier in response to reclaiming a storage division of the non-volatile storage medium comprising the data; and

relocating the data to a physical addresses on another storage division of the non-volatile storage medium, wherein relocating the data comprises associating the data with third persistent metadata that maps the relocated data to the different logical identifier.

8. The method of claim 1 , wherein providing access to the data at the physical address through the different logical identifier comprises referencing the data through a reference entry in an index, the method further comprising removing the reference entry from the index in response to rewriting the data on the non-volatile storage medium with persistent metadata that maps the data with the different logical identifier.

9. The method of claim 1 , wherein the first persistent metadata comprises the logical address.

10. The method of claim 1 , further comprising associating the data with the different logical identifier in response to a move request, the move request comprising a request to associate the data with the different logical identifier.

11. The method of claim 1 , further comprising associating the data with two or more logical identifiers, including the different logical identifier in response to a clone request.

12. The method of claim 1 , further comprising associating the data with a plurality of logical identifiers in response to identifying duplicate data.

13. The method of claim 12 , further comprising invalidating a duplicate copy of the data on the non-volatile storage medium.

14. A system, comprising:

a log storage module configured to store data corresponding to a first logical identifier of a logical address space on a particular storage location of a non-volatile storage medium, such that the data is associated with a first logical identifier as stored on the non-volatile storage medium;

a storage layer configured to associate the data with a second logical identifier of the logical address space, wherein the data stored on the particular storage location is not bound to the second logical identifier, and wherein the storage layer is configured to provide for referencing the data stored on the particular storage location by use of the second logical identifier; and

a storage controller configured to write the data on a different storage location of the non-volatile storage medium such that the data stored on the different storage location is bound to the second logical identifier.

15. The system of claim 14 , wherein the storage layer is configured to store a persistent note on the non-volatile storage medium that binds the data stored on the particular storage location with the second logical identifier.

16. The system of claim 14 , wherein the storage layer is configured to reference the data stored on the first media storage location through a reference entry in an index configured to bind the data to both the first logical identifier and the second logical identifier.

17. The system of claim 14 , wherein the storage layer is configured to write the data to the different storage location in a process that is independent of servicing storage requests directed to the storage controller.

18. A non-transitory machine-readable storage medium comprising instructions to cause a processor to perform a method, the method comprising:

modifying a logical interface of data stored in a packet format on a particular storage location of a non-volatile storage device, wherein the logical interface associates the data with a first set of one or more logical identifiers, and wherein modifying the logical interface comprises associating the data stored in the packet format on the particular storage location with a second, different set of logical identifiers of the logical address space;

providing access to the data stored in the packet format on the particular storage location through one or more logical identifiers of the logical address space that are not included in the first set of logical identifiers; and

appending data to the non-volatile storage device that associates the data stored in the packet format on the particular storage location with one or more logical identifiers in the second set.

19. The non-transitory machine-readable storage medium of claim 18 , the method further comprising acknowledging completion of a request to associate the data with the second, different set of logical identifiers in response to appending the data to the non-volatile storage device that associates the data with one or more logical identifiers in the second set.

20. The non-transitory machine-readable storage medium of claim 18 , the method further comprising rewriting the data on the non-volatile storage device in a packet format comprising a header that associates the data with the one or more logical identifiers in the second set.

21. The non-transitory machine-readable storage medium of claim 20 , wherein the data is rewritten in a background storage operation.

22. The non-transitory machine-readable storage medium of claim 18 , wherein the data appended to the non-volatile storage device that associates the data stored in the packet format on the particular storage location with the one or more logical identifiers in the second set removes an association between the data and a logical identifier in the first set.

23. An apparatus, comprising:

a storage interface configured to map logical identifiers of a logical address space to data stored on a non-volatile storage medium; and

a storage layer configured to maintain the mappings by use of persistent metadata stored on the non-volatile storage medium, including a mapping between a first logical identifier and a particular physical storage location on the non-volatile storage medium comprising data mapped to the first logical identifier,

wherein the storage layer is further configured to modify a logical identifier mapped to data stored on the particular storage location to map the data stored on the particular storage location to a second logical identifier of the logical address space, and

wherein the storage interface provides access to the data stored on the particular storage location by use of the second logical identifier.

24. The interface of claim 23 , wherein the storage layer is configured to rewrite the data on another storage location of the non-volatile storage medium with persistent metadata that maps the data to the second logical identifier.

25. The interface of claim 23 , wherein the storage layer is configured to acknowledge completion of a request to associate the data with the second logical identifier in response to writing persistent metadata on the non-volatile storage medium that maps the data stored on the particular storage location to the second logical identifier.

Assignments (9)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0898 →
CORRECTIVE ASSIGNMENT TO REMOVE APPL. NO'S 13/925,410 AND 61/663,464 PREVIOUSLY RECORDED AT REEL: 034838 FRAME: 0091. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Apr 30, 2015
From: FUSION-IO, INC
To: FUSION-IO, LLC
Reel/Frame 035603/0748 →
CORRECTIVE ASSIGNMENT TO REMOVE APPL. NO'S 13/925,410 AND 61/663,464 PREVIOUSLY RECORDED AT REEL: 035168 FRAME: 0366. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 30, 2015
From: FUSION-IO, LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 035603/0582 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2015
From: FUSION-IO, LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 035168/0366 →
CHANGE OF NAME Recorded Jan 28, 2015
From: FUSION-IO, INC
To: FUSION-IO, LLC
Reel/Frame 034838/0091 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2012
From: FLYNN, DAVID; WIPFEL, ROBERT; NELLANS, DAVID; STRASSER, JOHN
To: FUSION-IO, INC.
Reel/Frame 028100/0136 →
Continuity (2)
Provisional Application 61454235 · Mar 18, 2011
Related Publication 20130073821A1 · Mar 21, 2013