Nonrepeating identifiers in an address space of a non-volatile solid-state storage
First Claim
1. A method of applying an address space in a non-volatile solid-state storage, comprising:
- receiving user data for storage in the non-volatile solid-state storage;
translating a first address of a portion of the user data in a first address space, to a second address of the portion of the user data in a second address space, wherein addresses in the second address space have a range and a sequence, each address in the second address space applied in keeping with the sequence to a portion of the user data in the non-volatile solid-state storage is different at a time of application from all addresses in the second address space previously applied in keeping with the sequence in the non-volatile solid-state storage to portions of the user data, and the range of the addresses in the second address space is greater than a maximum number of addresses in the second address space expected to be applied during a lifespan of the non-volatile solid-state storage; and
storing the portion of the user data in the non-volatile solid-state storage, with the portion of the user data associated with both the first address and the second address, wherein the second address space is one of a logical address space or a virtual address space, and wherein at least one method operation is performed by a processor.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of applying an address space to data storage in a non-volatile solid-state storage is provided. The method includes receiving a plurality of portions of user data for storage in the non-volatile solid-state storage and assigning to each successive one of the plurality of portions of user data one of a plurality of sequential, nonrepeating addresses of an address space. The address range of the address space exceeds a maximum number of addresses expected to be applied during a lifespan of the non-volatile solid-state storage. The method includes writing each of the plurality of portions of user data to the non-volatile solid-state storage such that each of the plurality of portions of user data is identified and locatable for reading via the one of the plurality of sequential, nonrepeating addresses of the address space.
-
Citations
20 Claims
-
1. A method of applying an address space in a non-volatile solid-state storage, comprising:
-
receiving user data for storage in the non-volatile solid-state storage; translating a first address of a portion of the user data in a first address space, to a second address of the portion of the user data in a second address space, wherein addresses in the second address space have a range and a sequence, each address in the second address space applied in keeping with the sequence to a portion of the user data in the non-volatile solid-state storage is different at a time of application from all addresses in the second address space previously applied in keeping with the sequence in the non-volatile solid-state storage to portions of the user data, and the range of the addresses in the second address space is greater than a maximum number of addresses in the second address space expected to be applied during a lifespan of the non-volatile solid-state storage; and storing the portion of the user data in the non-volatile solid-state storage, with the portion of the user data associated with both the first address and the second address, wherein the second address space is one of a logical address space or a virtual address space, and wherein at least one method operation is performed by a processor. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of applying an address space to data storage, comprising:
-
distributing user data throughout a plurality of storage nodes through erasure coding, wherein the plurality of storage nodes are housed within a chassis that couples the storage nodes as a cluster, each of the plurality of storage nodes having non-volatile solid-state memory for user data storage; receiving a plurality of portions of user data for storage in the non-volatile solid-state memory; assigning to each successive one of the plurality of portions of user data one of a plurality of sequential, nonrepeating addresses of an address space, the sequential, nonrepeating addresses having a range that exceeds application of the sequential, nonrepeating addresses in a lifespan of the non-volatile solid-state memory; and writing each of the plurality of portions of user data to the non-volatile solid-state memory such that each of the plurality of portions of user data is identified and locatable for reading via the one of the plurality of sequential, nonrepeating addresses of the address space, wherein the address space is one of a logical address space or a virtual address space. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A storage cluster, comprising:
-
a plurality of storage nodes within a single chassis, each of the plurality of storage nodes having non-volatile solid-state memory for storage of user data, the non-volatile solid-state memory comprising; a flash memory, configured to store user data; and a controller coupled to the flash memory and configured to perform actions including; receiving a plurality of portions of user data for storage in the non-volatile solid-state storage; assigning to the plurality of portions of user data, in sequence, a plurality of virtual allocation units from an address space of sequential non-repeating virtual allocation units, such that each virtual allocation unit upon assignment to a portion of user data in the non-volatile solid-state storage differs from all previously assigned virtual allocation units in the non-volatile solid-state storage; and storing the plurality of portions of user data in the non-volatile solid-state storage, with each of the plurality of portions of user data stored according to one of the plurality of virtual allocation units as assigned, wherein the address space is one of a logical address space or a virtual address space. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification